Kotlin'de 'nullable' türleri nedir ve nasıl çalışırlar?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'de nullable türler, hem değer hem de null içerebilen türlerdir. Bunlar, tür adından sonra gelen ? sembolüyle açıkça belirtilir.
Çalışma prensibi, Kotlin'in tip sistemi üzerine kuruludur ve derleme sırasında NullPointerException'ı engeller. Derleyici, nullable türdeki bir nesnenin üyelerine erişmeden önce açık bir null kontrolü yapılmasını zorunlu kılar.
Nullable türlerle güvenli çalışmanın temel yolları şunlardır:
-
nullkontrolüifkullanarak:fun printLength(str: String?) { if (str != null) { println(str.length) // null kontrolünden sonra güvenli çağrı } else { println("String null") } } -
Güvenli çağrı operatörü (
?.): Nesnenullisenulldöner, değilse çağrının sonucu döner.val safeLength: Int? = str?.length // Eğer str null ise, safeLength null olur -
Elvis operatörü (
?:): Sol taraftaki ifadenullise varsayılan bir değer sağlar.val lengthOrDefault: Int = str?.length ?: 0 // Eğer str null ise, lengthOrDefault 0 olur -
Açık null olmayan onay operatörü (
!!): Nullable türü non-nullable yapar. Dikkatli kullanılmalı, çünkü değernulliseNullPointerExceptionfırlatır.val assertedLength: Int = str!!.length // Eğer str null ise NPE fırlatır -
let/run/apply/alsofonksiyonları ve güvenli çağrı:str?.let { // Kod, sadece str null değilse çalışır println("String uzunluğu: ${it.length}") }
Kotlin'in nullable tür sistemi, güvenliği önemli ölçüde artırır ve null'ın herhangi bir türe açıkça belirtilmeden atanabildiği dillere kıyasla NullPointerException olasılığını azaltır.