CodeBlanks Logo Icon CodeBlanks

let

let ile null-safe blok öğrenirsin.

let ile null-safe blok

?.let { } birleşimi, alıcı null değilse lambda'yı çalıştırır; null ise hiçbir şey yapmaz. Lambda içinde alıcı it olarak bilinir ve non-null türüne sahiptir.

val name: String? = "Ayşe"
name?.let {
    println("Merhaba $it")
}
// Merhaba Ayşe

Bu yapı, "null değilse birkaç işlem yap" deme biçimidir; if (x != null) bloğuna kısa bir alternatiftir.

it ve zincirleme let

?.let içinde alıcı otomatik olarak it olur; non-null türüyle. Birden çok let zinciri de yazılabilir, ancak iç içe it kullanımı okunabilirliği bozar; bu durumda açık parametre adı kullanmak ({ value -> ... }) daha iyidir.

name?.let { value ->
    println("Merhaba $value")
}

Bu biçimde value adı, it'in yerini alır; kodu daha okunaklı kılar.

Uygulama let ile null-safe selamlama

Bir val name: String? = "Ayşe" tanımla. name?.let { println("Merhaba $it") } ile null-safe selamlama yazdır.

Başlangıç kodu

Main.kt
fun main() {
    val name: String? = "Ayşe"
    // name null değilse "Merhaba" mesajını yazdır (let kullan)
}

Örnek çözüm

Main.kt
fun main() {
    val name: String? = "Ayşe"
    name?.let { println("Merhaba $it") }
}

Beklenen çıktı

Merhaba Ayşe

Soru ve cevaplar

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

1 Boşluğu doldur: let bloğu

Soru
name?.____ { println(it) }
Cevap
name?.let { println(it) }

Açıklama: name?.let { } null değilse lambda'yı çalıştırır.

2 İfadeyi rolüyle eşleştir

Kavram Anlamı
?.let { } null değilse çalıştır
it Lambda'nın tek parametresi
name?.length null ise null döner
name ?: "Yok" null ise varsayılan

3 name?.let { println(it) } — name null ise ne olur?

  • Exception fırlatır
  • println(null) yazar
  • Lambda çalışmaz, null döner Doğru cevap
  • it = null olur

Açıklama: ?.let null alıcıda lambda'yı çalıştırmaz; null döner.

Başlangıç bölümündeki tüm dersler