Сравнение двух состояний в корде - PullRequest
0 голосов
/ 23 мая 2018

Я создал два состояния в корде.Теперь я хочу сравнить поля этих двух состояний и создать третье состояние на основе сравнения.Является ли это возможным?По возможности как это сделать?Есть ли какое-нибудь идеальное решение для программирования, кроме сравнения каждого поля?

1 Ответ

0 голосов
/ 23 мая 2018

Если вы используете Kotlin, вы можете использовать классы данных: https://kotlinlang.org/docs/reference/data-classes.html Например, следующее вернет true:

data class Person(val name: String)
val person1 = Person("John")
val person2 = Person("John")
person1 == person2

Поскольку равенство определяется только на основе полейв первичном конструкторе.Кроме того, вы можете переопределить метод equals вашего класса.

Если вы пытаетесь сравнить только некоторые поля, вы можете сравнить их непосредственно в большом операторе if.Но если вы используете класс data, вы также можете сравнить их, создав копию, в которой поля, которые вы не хотите сравнить, были установлены равными в обоих случаях.Например, следующее вернет 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)
...