Null check
- Kotlin kursu
- Başlangıç
- Ders 80/116
- 5 dk
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
fun main() {
val name: String? = "Ayşe"
// name null değilse uzunluğunu yazdır (if != null)
}Örnek çözüm
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
if (name ____ null) { println(name.length) }
if (name != null) { println(name.length) }
Açıklama: if (name != null) bloğu içinde name non-null olur.