Nullable Alıcılarla let, also ve run
Bir değer null olmadığında kodu çalıştırmak için kapsam işlevlerini kullanın.
Nullable Alıcılarla let, also ve run, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 3. 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.
Kapsam İşlevleri Null Olabilir Değerlerle Buluşuyor
Kapsam işlevleri let, also ve run, yalnızca alıcı null değilken bir blok çalıştırmak için güvenli çağrı ?. ile çok iyi birlikte çalışır.
Güvenli Çağrıyla let
obj?.let { ... }, yalnızca obj null değilse bloğu çalıştırır; bloğun içinde it, null olmayan değeri ifade eder.
fun main() {
val name: String? = "Kotlin"
name?.let {
println("Length: ${it.length}")
println("Upper: ${it.uppercase()}")
}
}let Null Değerinde Bloğu Atlar
Alıcı null ise let bloğunun tamamı atlanır.
fun main() {
val name: String? = null
val result = name?.let {
println("never printed")
it.length
}
println(result) // null
}let Bir Değer Döndürür
let, bloğundaki son ifadeyi döndürür; varsayılan değerler için Elvis ile zincirlenebilir.
fun main() {
val raw: String? = " hello "
val cleaned = raw?.let { it.trim().uppercase() } ?: "(empty)"
println(cleaned) // HELLO
}Yan Etkiler İçin also
also, yan etkileri için bir blok çalıştırır ve özgün alıcıyı döndürür; zincir içinde günlük kaydı tutmak için harikadır.
fun main() {
val name: String? = "Alice"
val len = name?.also { println("Processing: $it") }?.length
println("len = $len")
}also Değeri Korur
let'in aksine also, alıcıyı değiştirmeden döndürür. Dönüştürmeden önce değeri incelemek istediğinizde kullanın.
fun main() {
val items: List<Int>? = listOf(1, 2, 3)
items?.also { println("Got list of size ${it.size}") }
?.forEach { println(it) }
}Güvenli Çağrıyla run
obj?.run { ... }, bloğu alıcıya bağlanmış this ile çalıştırır. it. ön eki olmadan üyelere erişmek istediğinizde kullanın.
fun main() {
val name: String? = "Kotlin"
val info = name?.run {
"len=$length upper=${uppercase()}"
}
println(info)
}let ve run Karşılaştırması
let, it'i (lambda bağımsız değişkeni) kullanır; run, this'i (alıcıyı) kullanır. Daha iyi okunan seçeneği tercih edin.
class User(val name: String, val age: Int)
fun main() {
val user: User? = User("Ada", 35)
user?.let { "${it.name} age ${it.age}" }.also(::println)
user?.run { "$name age $age" }.also(::println)
}Birden Çok Kapsamı Zincirleme
Adım adım dönüştürme ve günlük kaydı için kapsam işlevlerini bir işlem hattı boyunca zincirleyin.
fun main() {
val raw: String? = " hello "
val result = raw
?.also { println("raw: '$it'") }
?.let { it.trim() }
?.also { println("trimmed: '$it'") }
?.uppercase()
println(result) // HELLO
}takeIf ile let
Koşula dayalı yürütme için takeIf (filtreleme) ile let'i birleştirin.
fun main() {
val name: String? = "Kotlin"
name?.takeIf { it.length > 3 }
?.let { println("Long name: $it") }
}Karşıt Kalıp: İç İçe if'ler
Kapsam işlevlerinden önce:
fun main() {
val name: String? = "Alice"
// OLD WAY:
if (name != null) {
val upper = name.uppercase()
println(upper)
}
// NEW WAY:
name?.let { println(it.uppercase()) }
}Kısa Denetim
Hangi kapsam işlevi alıcıyı değiştirmeden döndürür ve temel olarak yan etkiler için kullanılır?
Özet
?. işlecini let (blok bir değer döndürür, it kullanır), run (blok bir değer döndürür, this kullanır) veya also (alıcıyı döndürür, yan etkiler için kullanılır) ile birleştirin. Alıcı null ise hepsi yürütmeyi atlar.
Yapay zeka eğitmeniyle Kotlin öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 51
- Dersler
- 203
Sıkça Sorulan Sorular
“Nullable Alıcılarla let, also ve run” dersi ücretsiz mi?
Evet — “Nullable Alıcılarla let, also ve run” 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 Alıcılarla let, also ve run” dersinde ne öğreneceğim?
Bir değer null olmadığında kodu çalıştırmak için kapsam işlevlerini kullanı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 3. dersidir.
“Nullable Alıcılarla let, also ve run” 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ı