Junior — Middle
Можете ли да обясните как е реализирана и функционира data class в Kotlin на вътрешно ниво?
sobes.tech AI
Отговор от AI
В Kotlin data class е специален клас, предназначен за съхранение на данни. По време на компилация компилаторът автоматично генерира няколко полезни метода:
equals()иhashCode()— за сравняване на обекти по стойност, а не по препратка.toString()— за удобен стринг представяне на обекта.copy()— за създаване на копие на обекта с възможност за промяна на някои свойства.- Функции
componentN()— за деструктуриране на обекта.
Вътрешно data class съдържа свойства, обявени в първичния конструктор, за които се генерират методи за достъп. Това предотвратява шаблонния код и прави работата с такива класове удобна и безопасна.
Пример:
data class User(val name: String, val age: Int)
val user1 = User("Alice", 30)
val user2 = user1.copy(age = 31)
println(user1) // User(name=Alice, age=30)
println(user1 == user2) // false
val (name, age) = user1
println(name) // Alice