Sobes.tech
Junior

Кадом тағйирёбандаи маълумот (data class) кадом тағйирёбандаҳо метавонанд истифода шаванд?

sobes.tech AI

Ҷавоб аз AI

Дар data class метавон истифода бурд:

  • val (хусусияти танҳо барои хондан): Хусусият ҳангоми эҷоди объект оғоз мешавад ва пас аз он тағир дода намешавад. Ин қисми методҳои автоматӣ тавлидшуда (equals(), hashCode(), toString(), copy) мебошад.
  • var (хусусияти тағирёбанда): Хусусият пас аз эҷоди объект тағир дода мешавад. Ин ҳам қисми методҳои тавлидшуда мебошад.
  • Хусусиятҳое, ки дар бадани синф эълон шудаанд: Ин хусусиятҳо қисми хусусиятҳои асосии data class нестанд ва дар тавлиди методҳои стандарт иштирок намекунанд.

Масалан:

data class User(
    val id: Int, // танҳо барои хондан, қисми асосии хусусиятҳо
    var name: String, // тағирёбанда, қисми асосии хусусиятҳо
    val creationTime: Long = System.currentTimeMillis() // танҳо барои хондан, бо арзиши пешфарзӣ, қисми асосии хусусиятҳо
) {
    val isAdmin: Boolean = false // танҳо барои хондан, қисми асосии хусусиятҳо нест, дар equals/hashCode/toString дохил намешавад
}