Sobes.tech
Junior — Middle

Чӣ гуна имкон дорад, ки сохтани объекти нав, ки се майдони data class-и аслӣ ва иловатан ду майдон дар шакли объектҳоро дорад, амалӣ карда шавад?

sobes.tech AI

Ҷавоб аз AI

Дар Kotlin, барои эҷоди объекти нав, ки се майдонро аз data class-и аслӣ дорад ва иловатан ду майдон-объект, метавонед истифода баред нусхабардорӣ бо функсияи copy() ва васеъ кардани синф ё эҷоди синфи нав бо майдонҳои зарурӣ.

Масалан:

data class Original(val a: Int, val b: String, val c: Double)

data class Additional(val x: String, val y: Int)

// Синфи нав, ки майдонҳоро мепайвандад
class Extended(
    val a: Int,
    val b: String,
    val c: Double,
    val additional1: Additional,
    val additional2: Additional
)

// Эҷод аз объекти аслӣ
val original = Original(1, "матн", 2.0)
val add1 = Additional("объект1", 10)
val add2 = Additional("объект2", 20)

val extended = Extended(original.a, original.b, original.c, add1, add2)

Агар ба шумо танҳо data class бо нусхабардорӣ лозим бошад, метавонед онро чунин созед:

data class Extended(
    val a: Int,
    val b: String,
    val c: Double,
    val additional1: Additional,
    val additional2: Additional
)

val extended = Extended(original.a, original.b, original.c, add1, add2)

Инчунин, шумо майдонҳои синфи аслӣ бо объектҳои навро мепайвандед.