Nullable Türler ve ? Değiştiricisi
Nullable değişkenler tanımlayın ve Kotlin'in derleme zamanındaki null güvenliğini anlayın.
Nullable Türler ve ? Değiştiricisi, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.
Kotlin'de Null Güvenliği
Kotlin, null tutabilen türlerle tutamayan türleri derleme zamanında birbirinden ayırır. Derleyici, çoğu NullPointerExceptions durumunu çalışma zamanından önce durdurur.
Null Olmayan Tür
Varsayılan olarak bir Kotlin türü null olamaz. null atamayı denerseniz derleyici bunu reddeder.
fun main() {
val name: String = "Ada"
// val nope: String = null // ERROR
println(name)
}? ile Null Olabilir Tür
Null değerine izin vermek için ? ekleyin. Derleyici artık değişkeni isteğe bağlı olarak bulunmayabilecek bir değer şeklinde ele alır.
fun main() {
val name: String? = null
println(name) // null
}Null Olabilir Değerlerde Yöntem Çağırma
Null durumunu önce ele almadan null olabilir bir değer üzerinde doğrudan yöntem çağıramazsınız. Derleyici bunu reddeder.
fun main() {
val name: String? = "Bob"
// println(name.length) // ERROR — name might be null
if (name != null) println(name.length) // smart cast
}Akıllı Tür Dönüşümleri
if (x != null) denetiminden sonra Kotlin, dalın içinde x için akıllı tür dönüşümü yaparak onu null olmayan türe dönüştürür.
fun main() {
val name: String? = "Alice"
if (name != null) {
println("Length: ${name.length}") // safe, smart-cast
} else {
println("No name")
}
}Null Olabilir İşlev Parametresi
Eksik olabilecek işlev parametrelerini null olabilir olarak işaretleyin. Çağıran, açıkça bir değer veya null sağlamak zorundadır.
fun greet(name: String?) {
if (name == null) println("Hello, stranger")
else println("Hello, $name")
}
fun main() {
greet("Sara")
greet(null)
}Null Olabilir Dönüş Türü
X? döndüren bir işlev, çağırana null döndürebileceğini bildirir; çağıran bunu ele almak zorundadır.
fun findUser(id: Int): String? {
return if (id == 1) "Alice" else null
}
fun main() {
val u = findUser(2)
println(u ?: "no user")
}Null Olabilir Özellikler
Sınıf özellikleri de null olabilir. Bu, alanlar daha sonra doldurulduğunda veya isteğe bağlı olarak alındığında yaygındır.
data class Profile(
val name: String,
val avatarUrl: String?
)
fun main() {
val p = Profile("Lee", null)
println(p.avatarUrl ?: "(no avatar)")
}Java ile Karşılaştırma
Kotlin'e geçen Java türleri platform türleri (String!) olarak görünür; Kotlin size güvenir ancak null güvenliği sunmaz. Mümkün olduğunda Java API'lerine her zaman @Nullable/@NotNull ek açıklamalarını ekleyin.
fun main() {
val maybeList: List<Int>? = null
val listOfMaybe: List<Int?> = listOf(1, null, 3)
println(maybeList?.size) // null
println(listOfMaybe.size) // 3
}Java ile karşılaştırma
Java türleri Kotlin'e geçtiğinde platform türleri (String!) olarak görünür — Kotlin size güvenir ancak boş değer güvenliği sunmaz. Mümkün olduğunda Java API'lerine her zaman @Nullable/@NotNull ek açıklamalarını ekleyin.
fun main() {
val maybeNull: String? = System.getenv("FOO") // null if unset
println("env FOO = ${maybeNull ?: "(unset)"}")
}Neden Önemlidir
Derleme zamanındaki null güvenliği, çalışma zamanındaki çökmelerin bütün bir sınıfını önler. ? değiştiricisini benimseyin; bu değiştirici amacı belgeler ve değerin ele alınmasını zorunlu kılar.
fun divide(a: Int, b: Int): Int? = if (b == 0) null else a / b
fun main() {
val r1 = divide(10, 2) // 5
val r2 = divide(10, 0) // null — handled at call site
println("$r1, $r2")
}Kısa Denetim
Tür bildirimlerinin sonundaki ? ne anlama gelir?
Özet
Varsayılan olarak Kotlin türleri null olabilir değildir. Null değerine izin vermek için ? ekleyin. Derleyici, akıllı tür dönüşümleri, güvenli çağrılar ve Elvis işleci aracılığıyla null işlemesini zorunlu kılar; böylece çoğu NullPointerExceptions durumunu çalışma zamanından önce önler.
Sıkça Sorulan Sorular
“Nullable Türler ve ? Değiştiricisi” dersi ücretsiz mi?
Evet — “Nullable Türler ve ? Değiştiricisi” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.
“Nullable Türler ve ? Değiştiricisi” dersinde ne öğreneceğim?
Nullable değişkenler tanımlayın ve Kotlin'in derleme zamanındaki null güvenliğini anlayın. Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Nullable Türler ve ? Değiştiricisi” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Nullable Türler ve ? Değiştiricisi
- Güvenli Çağrı ?. ve Gerçek Kodda Elvis ?:
- Nullable Alıcılarla let, also ve run
- !! İşleci: Ne Zaman ve Neden Kaçınılmalı