Sobes.tech
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