Junior — Middle
Kokius automatinio metodus kuria kompiliatorius duomenų klasei ir kam jie skirti?
sobes.tech AI
Atsakymas iš AI
Kotlin'e, data class atveju, kompiliatorius automatiškai generuoja keletą naudingų metodų, kurie palengvina darbą su objektais:
equals()— objektų palyginimas pagal visų savybių reikšmes.hashCode()— gauti hash kodą, suderinamą suequals().toString()— grąžina objekto teksto reprezentaciją su visų savybių sąrašu.copy()— sukuria objekto kopiją su galimybe keisti kai kurias savybes.componentN()funkcijos — objekto destruktūrizacija į atskiras kintamąsias.
Pavyzdys:
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) = user2
println(name) // Alice
println(age) // 31
Šie metodai supaprastina darbą su nekintamais objektais ir daro kodą išraiškingesnį.