Junior — Middle
Ποιες λειτουργίες ή μέθοδοι στην κλάση δεδομένων λαμβάνουν αυτόματα την υπεράσπιση των βασικών λειτουργιών;
sobes.tech AI
Απάντηση από AI
Στην Kotlin, κατά την δήλωση μιας κλάσης με τη λέξη-κλειδί data, οι ακόλουθες μέθοδοι υπερισχύουν αυτόματα:
equals()— για σύγκριση αντικειμένων βάσει της αξίας των ιδιοτήτων τους.hashCode()— για σωστή λειτουργία με συλλογές κατακερματισμού.toString()— για βολική αναπαράσταση του αντικειμένου ως συμβολοσειρά.copy()— για δημιουργία αντιγράφου του αντικειμένου με δυνατότητα τροποποίησης ορισμένων ιδιοτήτων.componentN()— για αποσύνθεση του αντικειμένου βάσει ιδιοτήτων.
Παράδειγμα:
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