В Kotlin «класс данных» — это особый тип класса, который в основном используется для хранения данных. Он автоматически генерирует для вас несколько полезных методов, таких как Equals(), hashCode(), toString() и copy(). Вот объяснение каждого метода вместе с примером кода:
- equals(other: Any?): этот метод проверяет, равны ли два объекта, сравнивая значения их свойств. Он возвращает true, если объекты имеют одинаковые значения свойств, и false в противном случае.
data class Person(val name: String, val age: Int)
val person1 = Person("John", 25)
val person2 = Person("John", 25)
val person3 = Person("Jane", 30)
println(person1.equals(person2)) // true
println(person1.equals(person3)) // false
- hashCode(): этот метод возвращает значение хэш-кода объекта. Он используется в сочетании с методомquals() для эффективного сравнения объектов в структурах данных на основе хэша, таких как HashMap и HashSet.
data class Person(val name: String, val age: Int)
val person = Person("John", 25)
println(person.hashCode()) // Output: -1255927949
- toString(): этот метод возвращает строковое представление объекта, обычно используемое для целей отладки или ведения журнала. По умолчанию он возвращает строковое представление свойств объекта.
data class Person(val name: String, val age: Int)
val person = Person("John", 25)
println(person.toString()) // Output: Person(name=John, age=25)
- copy(): этот метод создает копию объекта с возможностью изменения некоторых его свойств. Это полезно, если вы хотите создать новый экземпляр класса данных с теми же значениями свойств.
data class Person(val name: String, val age: Int)
val person1 = Person("John", 25)
val person2 = person1.copy(age = 30)
println(person1) // Output: Person(name=John, age=25)
println(person2) // Output: Person(name=John, age=30)