Junior — Middle
კითხვაში დასმულია, თუ დაშვებულია თუ არა Kotlin-ის data class-ის კონსტრუქტორის პარამეტრებში ცვლადების (var) გამოყენება?
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-ის გამოყენება არ არის დაშვებული კონსტრუქტორის პარამეტრებში data class-ის — აუცილებელია მკაფიოდ მითითება var ან val.