Junior — Middle
Asosiy data classining uchta maydonini va qo'shimcha ravishda ikki maydonini obyekt shaklida bo'lgan yangi obyektni qanday amalga oshirish mumkin?
sobes.tech AI
AIdan javob
Kotlin'da, aslında orijinal data class'tan üç alan içeren ve ek olarak iki nesne alanı olan yeni bir nesne oluşturmak için copy() fonksiyonu ve sınıf genişletme kullanılabilir veya ihtiyaç duyulan alanlara sahip yeni bir sınıf oluşturulabilir.
Örnek:
data class Original(val a: Int, val b: String, val c: Double)
data class Additional(val x: String, val y: Int)
// Alanları birleştiren yeni sınıf
class Extended(
val a: Int,
val b: String,
val c: Double,
val additional1: Additional,
val additional2: Additional
)
// Orijinal nesneden oluşturma
val original = Original(1, "metin", 2.0)
val add1 = Additional("nesne1", 10)
val add2 = Additional("nesne2", 20)
val extended = Extended(original.a, original.b, original.c, add1, add2)
Eğer tam anlamıyla bir data class ile kopyalama gerekiyorsa, şu şekilde yapılabilir:
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)
Bu şekilde, orijinal sınıfın alanları yeni nesnelerle birleştirilir.