0Pricing
Kotlin Academy · Ders

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

  1. Nullable Türler ve ? Değiştiricisi
  2. Güvenli Çağrı ?. ve Gerçek Kodda Elvis ?:
  3. Nullable Alıcılarla let, also ve run
  4. !! İşleci: Ne Zaman ve Neden Kaçınılmalı
← Kotlin Academy Sayfasına Dön