copy
- Kotlin kursu
- Orta seviye
- Ders 14/116
- 5 dk
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
// 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
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
val q = p.____(price = 20.0)
val q = p.copy(price = 20.0)
Açıklama: copy metodu kopya üretir.