CodeBlanks Logo Icon CodeBlanks

Null check

if (x != null) ile null kontrolünü öğrenirsin.

Null check: if (x != null)

Bir nullable değişkeni if (x != null) ile denetlersen, derleyici blok içinde x'i non-null türe dönüştürür. Buna smart cast denir; !! kullanmana gerek kalmaz.

val name: String? = "Ayşe"
if (name != null) {
    println(name.length)  // smart cast: String
}

Blok dışında name hâlâ String?'dir; null olma riski devam eder. Bu, denetimin yalnızca blok içinde geçerli olmasını sağlar.

Null check ve erken return

if (x == null) return kalıbı, fonksiyonun başında null durumunu erken halledip geri kalan kodu non-null olarak yazmaya olanak tanır. Bu, gereksiz iç içe blokları önler.

fun greet(name: String?) {
    if (name == null) return
    println("Merhaba $name")
}

Erken return'den sonra name artık String'dir; ?. ya da !! gerekmez. Bu teknik özellikle fonksiyonun başında doğrulama yaparken yararlıdır.

Uygulama if (name != null) ile uzunluğu yazdır

Bir val name: String? = "Ayşe" tanımla. if (name != null) bloğu içinde println(name.length) ile uzunluğu yazdır.

Başlangıç kodu

Main.kt
fun main() {
    val name: String? = "Ayşe"
    // name null değilse uzunluğunu yazdır (if != null)
}

Örnek çözüm

Main.kt
fun main() {
    val name: String? = "Ayşe"
    if (name != null) {
        println(name.length)
    }
}

Beklenen çıktı

4

Soru ve cevaplar

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

1 if (name != null) bloğu DIŞINDA name'in türü nedir?

  • String (smart cast)
  • Any
  • Unit
  • String? Doğru cevap

Açıklama: Blok dışında name hâlâ String?'dir; smart cast yalnızca içeride geçerlidir.

2 İfadeyi rolüyle eşleştir

Kavram Anlamı
if (x != null) İçeride x non-null
if (x == null) İçeride x null
smart cast Tür otomatik daralır
return Blokdan erken çık

3 Boşluğu doldur: null check

Soru
if (name ____ null) { println(name.length) }
Cevap
if (name != null) { println(name.length) }

Açıklama: if (name != null) bloğu içinde name non-null olur.

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