CodeBlanks Logo Icon CodeBlanks

Özet - Null safety

?, !!, ?: ve let'i birleştirerek null-safe bir fonksiyon yazarsın.

Özet: ?, !!, ?: ve let birlikte

Bu özette null-safe araçları birleştireceksin. Bir nullable değer hem ?.let ile işlenebilir hem de ?: ile varsayılan fallback alabilir. !! ise yalnızca "eminim" dediğin noktalarda kullanılır.

val name: String? = null
name?.let { println("Merhaba $it") } ?: println("Misafir")
// Misafir

Bu zincir, null ise "Misafir" yazdırır; null değilse selamlama yapar. Böylece tek satırda iki dalı da yönetmiş olursun.

Uygulama let ve Elvis ile null-safe selamlama

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

Başlangıç kodu

Main.kt
fun main() {
    val name: String? = null
    // name null ise "Misafir", değilse "Merhaba $it" yazdır (let ?: kullan)
}

Örnek çözüm

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

Beklenen çıktı

Misafir

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 Hangisi let ve Elvis'i birlikte kullanır?

  • if (name == null) println(name)
  • name?.let { println(it) } ?: println("Misafir") Doğru cevap
  • name!! + name?.length
  • println(name)

Açıklama: ?.let null değilse çalışır, ?: null ise varsayılan verir.

2 Operatörü rolüyle eşleştir

Kavram Anlamı
?. Safe call
!! Non-null assertion
?: Elvis varsayılan
?.let { } Null-safe blok

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