corda中两种状态的比较
Comparison of two states in corda
我在corda中创建了两个状态。现在我想比较这两个状态的字段,并根据比较创建第三个状态。可能吗?如果可能怎么办?除了比较各个字段,还有什么理想的编程方案吗?
如果你使用的是Kotlin,那么可以使用data classes: https://kotlinlang.org/docs/reference/data-classes.html 比如下面会return true
:
data class Person(val name: String)
val person1 = Person("John")
val person2 = Person("John")
person1 == person2
因为相等性完全取决于主构造函数中的字段。或者,您可以覆盖 class.
的 equals
方法
如果您只是想比较某些字段,可以直接在大型 if
语句中进行比较。但是,如果您使用的是 data
class,您还可以通过创建副本来比较它们,其中您 不想 想要比较的字段已设置为在这两种情况下都是平等的。例如,下面将 return true
:
data class Person(val name: String, val age: Int, val address: String)
val person1 = Person("John", 24, "London")
val person2 = Person("John", 25, "London")
person1 == person2.copy(age = person1.age)
我在corda中创建了两个状态。现在我想比较这两个状态的字段,并根据比较创建第三个状态。可能吗?如果可能怎么办?除了比较各个字段,还有什么理想的编程方案吗?
如果你使用的是Kotlin,那么可以使用data classes: https://kotlinlang.org/docs/reference/data-classes.html 比如下面会return true
:
data class Person(val name: String)
val person1 = Person("John")
val person2 = Person("John")
person1 == person2
因为相等性完全取决于主构造函数中的字段。或者,您可以覆盖 class.
的equals
方法
如果您只是想比较某些字段,可以直接在大型 if
语句中进行比较。但是,如果您使用的是 data
class,您还可以通过创建副本来比较它们,其中您 不想 想要比较的字段已设置为在这两种情况下都是平等的。例如,下面将 return true
:
data class Person(val name: String, val age: Int, val address: String)
val person1 = Person("John", 24, "London")
val person2 = Person("John", 25, "London")
person1 == person2.copy(age = person1.age)