CodeBlanks Logo Icon CodeBlanks

by map

by map ile dinamik özellik öğrenirsin.

by map delegasyonu

Bir özelliği bir Map'e delege edebilirsin. Örnek: class User(val map: Map<String, Any?>) { val name: String by map; val age: Int by map }. Burada name ve age özellikleri map'ten okunur; anahtar özellik adıdır.

Bu, dinamik veri yapıları için kullanışlıdır: JSON gibi anahtar-değer verilerini bir sınıf gibi erişilebilir yapar. val özellikler Map ile, var özellikler MutableMap ile delege edilir. var için map[name] = value ataması çalışır.

by map örneği

Bir User sınıfı mapOf("name" to "Ayşe", "age" to 30) ile oluşturulur. u.name haritadan "name" anahtarını okur ve String olarak döndürür. u.age 30 döndürür.

Tür güvenliği önemlidir: age: Int bildirimi haritadaki değerin Int olduğunu varsayar. Yanlış tür runtime hatası verir. Dinamik veriyi statik türlerle sarmak bu desenin gücüdür. MutableMap ile var özellikleri hem okunur hem yazılır.

Uygulama User sınıfını by map ile tanımla

class User(val map: Map<String, Any?>) tanımla. İçinde val name: String by map ve val age: Int by map özelliklerini ekle. main içinde User(mapOf("name" to "Ayşe", "age" to 30)) oluştur ve println(u.name) ile println(u.age) çağır.

Başlangıç kodu

Main.kt
// User sınıfını tanımla: map parametreli, name ve age map delegesi ile

fun main() {
    // User örneği oluştur ve name, age yazdır
}

Örnek çözüm

Main.kt
class User(val map: Map<String, Any?>) {
    val name: String by map
    val age: Int by map
}

fun main() {
    val u = User(mapOf("name" to "Ayşe", "age" to 30))
    println(u.name)
    println(u.age)
}

Beklenen çıktı

Ayşe
30

Soru ve cevaplar

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

1 by map kavramlarını eşle

Kavram Anlamı
by map Harita delegasyonu
map[key] Değer okuma
var name by map Değiştirilebilir
val name by map Salt okunur

2 val name by map hangi türü gerektirir?

  • List
  • Array
  • Set
  • Map Doğru cevap

Açıklama: by map bir Map gerektirir; anahtar özellik adıdır.

3 by map bildirimini tamamla

Soru
class User(val map: Map<String, Any?>) {
    val name: String ____ map
}
Cevap
class User(val map: Map<String, Any?>) {
    val name: String by map
}

Açıklama: by map name özelliğini haritadan okur.

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