Sobes.tech
Junior — Middle

Ҳамоҳангии истифодаи data class дар забони барномасозӣ чӣ амалҳо ва имкониятҳоро фароҳам меорад?

sobes.tech AI

Ҷавоб аз AI

Класи маълумот дар Kotlin махсус класи мебошад, ки барои нигоҳдории маълумот пешбинӣ шудааст. Вақте ки класи бо калимаи калидии data эълон карда мешавад, компилятор автоматӣ чанд методи муфидро тавлид мекунад:

  • equals() ва hashCode() — барои муқоиса кардани объектҳо ба асоси арзиш, на истинод.
  • toString() — барои намоиши қулайи мундариҷаи объект.
  • copy() — барои эҷоди нусхаи объект бо имконияти тағир додани баъзе хусусиятҳо.
  • Функсияҳои componentN() — барои деструктуризатсияи объект.

Масалан:

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

fun main() {
    val user1 = User("Ivan", 30)
    val user2 = user1.copy(age = 31)
    println(user1) // User(name=Ivan, age=30)
    println(user2) // User(name=Ivan, age=31)

    val (name, age) = user1
    println("Ном: $name, Синну: $age")
}

Инчунин, класи маълумот кор бо объектҳоро содда мекунад, ки асосан маълумотро дар бар мегирад, ва миқдори коди такрориро кам мекунад.