0Pricing
Android Academy · Ders

Güvenli Çağrılar ve Elvis

?. ve ?: işleçleri.

Güvenli Çağrılar ve Elvis, CoddyKit'te ücretsiz bir Android Academy dersidir. Bu, 4 dersinin 2. 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, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 4 dersten oluşur.

if Kontrollerinin Ötesi

Her null olabilen değeri if ile kontrol etmek işe yarar, ancak kısa sürede ayrıntılı hale gelir. Kotlin, null işlemleri için tasarlanmış kısa işleçler sunar.

Bu derste, sürekli kullanacağınız iki araç olan güvenli çağrı işleci ?. ve Elvis işleci ?: ele alınır.

Güvenli Çağrı İşleci

?. işleci, bir yöntemi yalnızca değer null değilse çağırır. Değer null ise ifadenin tamamı çökme yerine null olarak değerlendirilir.

Bu, null değilse kalıbının güvenli bir kısaltmasıdır.

fun main() {
    val name: String? = "Coddy"
    println(name?.length)
}

Null Üzerinde Güvenli Çağrı

Alıcı null olduğunda güvenli çağrı kısa devre yapar ve null döndürür. Hiçbir özel durum oluşturulmaz.

Burada yazdırılan sonuç çökme değil, null kelimesidir.

fun main() {
    val name: String? = null
    println(name?.length)  // prints: null
}

Güvenli Çağrıları Zincirleme

?. işlecini birkaç adım boyunca zincirleyebilirsiniz. Herhangi bir bağlantı null ise zincirin tamamı durur ve null üretir.

Bu, iç içe geçmiş isteğe bağlı verilerde gezinmek için idealdir.

class Address(val city: String?)
class User(val address: Address?)

fun cityOf(u: User?): String? {
    return u?.address?.city
}

Elvis İşleci

Elvis işleci ?:, sol taraf null olduğunda bir yedek değer sağlar. Bu ad, simgenin benzediği şarkıcının saç stilinden gelir.

Şöyle okuyun: sol değeri kullanın, yoksa sağ değeri kullanın.

fun main() {
    val name: String? = null
    val shown = name ?: "Guest"
    println(shown)  // prints: Guest
}

Güvenli Çağrılarla Elvis

Güvenli çağrı ve Elvis birlikte mükemmel çalışır. Bir değerin içine erişmek için ?., herhangi bir şey null ise varsayılan sağlamak için ?: kullanın.

Bu kalıp, null olabilen bir sonucu kesin olarak null olmayan bir sonuca dönüştürür.

fun main() {
    val name: String? = null
    val len: Int = name?.length ?: 0
    println(len)  // prints: 0
}

Varsayılan Uzunluk Örneği

Buradaki sonuç türü Int? değil, sıradan bir Int'tir. Elvis işleci null olma durumunu ortadan kaldırmıştır.

Null olmayan bir yedek değerden sonra ?: kullanıldığında derleyici, değerin hiçbir zaman null olamayacağını bilir.

val title: String? = "Kotlin"
val length: Int = title?.length ?: 0
// length is a non-null Int

Erken Dönüş için Elvis

Kotlin'de return ve throw ifadeler olduğundan, bunları Elvis'in sağına yazabilirsiniz.

Bu, gerekli bir değer eksik olduğunda erken çıkmanın anlaşılır bir yoludur.

fun process(input: String?) {
    val text = input ?: return
    println(text.uppercase())
}

let ile Güvenli Çağrı

Değer null olmadığında bir bloğu çalıştırmak için ?. ile let'i birleştirin. İçeride değer null değildir ve it adıyla kullanılır.

Bu, isteğe bağlı değerler üzerinde işlem yapmak için yaygın bir kalıptır.

fun main() {
    val email: String? = "a@b.com"
    email?.let {
        println("Sending to " + it)
    }
}

Hepsini Bir Araya Getirme

Kısa bir program, güvenli çağrı ile Elvis'in birlikte çalışarak anlaşılır bir ileti üretmesini gösterebilir.

Hiçbir if ifadesine gerek olmadığına, buna rağmen kodun null kaynaklı çökme riski taşımadığına dikkat edin.

fun main() {
    val nickname: String? = null
    val display = nickname?.uppercase() ?: "ANONYMOUS"
    println(display)
}

Hangisini Ne Zaman Kullanmalı?

Null sonucunun zararsız biçimde akıp gitmesini istediğinizde ?. kullanın. Null değerini somut bir varsayılanla değiştirmek istediğinizde ?: kullanın.

Birlikte, ayrıntılı kontrollere gerek kalmadan günlük null işlemlerinin büyük çoğunluğunu karşılarlar.

val count = list?.size ?: 0
// safe call reads size, Elvis defaults to 0

Hızlı Kontrol

Güvenli çağrılar ve Elvis işleci hakkındaki kavrayışınızı test edin.

Özet

Güvenli çağrı ?., alıcı null değilse bir üyeyi çağırır; aksi durumda null üretir. Elvis işleci ?:, null değeri bir yedek değerle değiştirir.

Bunları zincirlemek null olma durumunu temiz biçimde ortadan kaldırır. Sırada let ve also gibi kapsam işlevlerini daha ayrıntılı inceleyeceksiniz.

Sıkça Sorulan Sorular

“Güvenli Çağrılar ve Elvis” dersi ücretsiz mi?

Evet — “Güvenli Çağrılar ve Elvis” 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 Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 4 dersten oluşur.

“Güvenli Çağrılar ve Elvis” dersinde ne öğreneceğim?

?. ve ?: işleçleri. Android 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.

Android Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Android 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 2. dersidir.

“Güvenli Çağrılar ve Elvis” 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 Android Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Android 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 ve Nullable Olmayan Türler
  2. Güvenli Çağrılar ve Elvis
  3. let, also ve Kapsam İşlevleri
  4. NullPointerExceptions Önleme
← Android Academy Sayfasına Dön