Sobes.tech
Junior — Middle

Επιτρέπεται η χρήση μεταβλητών (var) στις παραμέτρους του κατασκευαστή της data class σε Kotlin;

sobes.tech AI

Απάντηση από AI

Στην Kotlin, στους παραμέτρους του κατασκευαστή μιας data class δεν μπορεί να χρησιμοποιηθεί ο τροποποιητής var. Οι παράμετροι του κατασκευαστή μιας data class είναι από προεπιλογή val (αμετάβλητοι) ή var (μεταβλητοί), αλλά κατά την δήλωση των παραμέτρων του κατασκευαστή πρέπει να δηλώνονται ρητά var ή val.

Για παράδειγμα, μια σωστή δήλωση data class με var:

data class User(var name: String, val age: Int)

Αν δεν δηλωθεί var ή val, οι παράμετροι θα είναι απλώς παράμετροι του κατασκευαστή, αλλά δεν θα είναι ιδιότητες της κλάσης, και η data class δεν θα μπορεί να δημιουργήσει τις απαραίτητες μεθόδους (equals, hashCode, toString) γι' αυτούς.

Επομένως, δεν επιτρέπεται η απλή χρήση var χωρίς val ή var στους παραμέτρους του κατασκευαστή μιας data class — πρέπει να δηλώνονται ρητά var ή val.