Junior — Middle
Ποια αυτόματα methods δημιουργούνται από τον μεταγλωττιστή για την data class και ποιος είναι ο σκοπός τους;
sobes.tech AI
Απάντηση από AI
Στην Kotlin, για τις data class, ο μεταγλωττιστής δημιουργεί αυτόματα αρκετές χρήσιμες μεθόδους που διευκολύνουν τη δουλειά με αντικείμενα:
equals()— για σύγκριση αντικειμένων βάσει της τιμής όλων των ιδιοτήτων.hashCode()— για λήψη ενός κωδικού κατακερματισμού που είναι συμβατός με τοequals().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) = user2
println(name) // Alice
println(age) // 31
Αυτές οι μέθοδοι απλοποιούν τη δουλειά με αμετάβλητα αντικείμενα και κάνουν τον κώδικα πιο εκφραστικό.