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