CodeBlanks Logo Icon CodeBlanks

copy

copy ile veri sınıfı kopyalama öğrenirsin.

copy metodu

Data sınıfları otomatik olarak copy metodu üretir. Bu metot, mevcut örneğin bir kopyasını oluştururken bazı özellikleri değiştirmeye yarar; orijinal örnek değişmez.

Örnek: val q = p.copy(price = 20.0). Burada q, p ile aynı özelliklere sahiptir ama price 20.0 olur. p değişmez. Named argüman kullanılmayan özellikler orijinal değerini korur. Bu, veri sınıflarında değişiklik yapmak için yaygın ve güvenli bir yoldur.

copy ve named argüman

copy metodu, primary constructor'ın tüm parametrelerini named argüman olarak alır. Yalnızca değiştirmek istediklerinizi verirsin; gerisi orijinal değerle kalır.

Örnek: data class Product(val name: String, val price: Double). p.copy(name = "Yeni") yalnızca name'i değiştirir, price aynı kalır. p.copy() ise birebir kopya üretir. Named argüman sırası önemsizdir; istediğin parametreyi değiştirebilirsin.

Uygulama Product veri sınıfını ve copy'yi uygula

Product adında bir veri sınıfı tanımla; primary constructor val name: String, val price: Double alsın. main içinde Product("Kalem", 15.0) örneği oluştur. p.copy(price = 20.0) ile q örneği üret. p ve q'yu ayrı ayrı println ile yazdır.

Başlangıç kodu

Main.kt
// Product veri sınıfı tanımı
// name ve price özellikleri ile
// main'de örnekle, copy ile q üret
// p ve q'yu yazdır

Örnek çözüm

Main.kt
data class Product(val name: String, val price: Double)

fun main() {
    val p = Product("Kalem", 15.0)
    val q = p.copy(price = 20.0)
    println(p)
    println(q)
}

Beklenen çıktı

Product(name=Kalem, price=15.0)
Product(name=Kalem, price=20.0)

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 copy kalıbını eşle

Kavram Anlamı
p.copy(price = 20.0) Kopya ve fiyat değişti
p.copy() Birebir kopya
val q = ... Yeni örneğe atama
p değişmez Orijinal korunur

2 <code>val q = p.copy(price = 20.0)</code> satırı ne yapar?

  • p'nin price değerini 20.0 yapar
  • p'nin birebir kopyasını üretir
  • price 20.0 olan yeni bir kopya üretir, p değişmez Doğru cevap
  • p'yi siler

Açıklama: copy orijinali korur ve değiştirilmiş kopya döndürür.

3 copy çağrısını tamamla

Soru
val q = p.____(price = 20.0)
Cevap
val q = p.copy(price = 20.0)

Açıklama: copy metodu kopya üretir.

Orta seviye bölümündeki tüm dersler