let ve run: Dönüştürme ve Kapsam
Null güvenli dönüşümler için let, yerel hesaplamalar için run uygulayın.
let ve run: Dönüştürme ve Kapsam, CoddyKit'te ücretsiz bir Kotlin 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, 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.
let ve run
let, alıcıyı it olarak kullanır; run ise this kullanır. Her ikisi de lambda'nın son ifadesini döndürür. Açık başvuruları tercih edip etmediğinize göre seçim yapın.
let Temelleri
let, alıcıyı lambda'ya it olarak aktarır. Bir değeri dönüştürmek veya bir değişkenin kapsamını sınırlamak için kullanışlıdır.
fun main() {
val length = "Kotlin".let { it.length }
println(length) // 6
}Nullable ile let
Klasik kullanım: obj?.let { ... }, bloğu yalnızca obj boş değilse çalıştırır.
fun main() {
val name: String? = "Ada"
val upper = name?.let { it.uppercase() } ?: "(unknown)"
println(upper) // ADA
}Dönüştürmek için let
Zinciri okunabilir tutarken bir değeri dönüştürmek için let kullanın.
fun main() {
val numStr = "42"
val doubled = numStr.let { it.toInt() }.let { it * 2 }
println(doubled) // 84
}Kapsamı Sınırlamak için let
Bir değişkenin görünürlüğünü küçük bir blokla sınırlayın; ad alanının kirlenmesini önlemenin temiz bir yoludur.
fun main() {
val username = readUserConfig().let { config ->
config.uppercase()
}
println(username)
}
fun readUserConfig() = "ada"run Temelleri
run, it yerine this kullanması dışında let gibi çalışır. Alıcının birden çok üyesini çağırmak istediğinizde kullanışlıdır.
class Rect(val w: Int, val h: Int) {
fun area() = w * h
fun perimeter() = 2 * (w + h)
}
fun main() {
val description = Rect(3, 4).run {
"area=${area()}, perimeter=${perimeter()}"
}
println(description)
}Bağımsız Blok olarak run
run { ... } (alıcı olmadan) bloğu çalıştırır ve sonucunu döndürür; hesaplamaları gruplamak için kullanışlıdır.
fun main() {
val result = run {
val a = 10
val b = 20
a + b
}
println(result) // 30
}Alıcı Biçimine göre let ve run
Lambda gövdesi alıcının birçok üyesine erişiyorsa run, it. öneklerini kullanma gereğini ortadan kaldırır. Alıcıyı yalnızca bir veya iki kez kullanıyorsa let daha okunaklıdır.
class User(val name: String, val email: String, val age: Int)
fun main() {
val user = User("Ada", "ada@x.io", 35)
// run: this-style
val s1 = user.run { "$name <$email> age $age" }
// let: it-style
val s2 = user.let { "${it.name} <${it.email}> age ${it.age}" }
println(s1); println(s2)
}let ve Elvis'i Birleştirme
?.let { ... } ile ?: birleşimi, boş değer güvenli bir işlem hattı kalıbıdır.
fun main() {
val raw: String? = " hello "
val cleaned = raw?.let { it.trim().uppercase() } ?: "(empty)"
println(cleaned) // HELLO
}Yapılandırma ve Sonuç ile run
Kurulumu (this aracılığıyla) döndürülen bir değerle tek bir blokta birleştirin.
class Connection {
var host: String = ""
fun connect() = "connected to $host"
}
fun main() {
val status = Connection().run {
host = "localhost"
connect()
}
println(status)
}Karşı Kalıp: let'i Gereğinden Fazla Kullanmak
Bir if daha açıksa basit boş değer denetimlerini let içine sarmalamayın. Kapsam işlevlerini gerçekten yardımcı oldukları yerlerde kullanın.
fun main() {
val name: String? = "Ada"
// OK
name?.let { println(it.length) }
// Equivalent and clearer for trivial cases:
if (name != null) println(name.length)
}Hızlı Kontrol
Hangi kapsam işlevi alıcıyı lambda'ya it olarak aktarır VE lambda'nın sonucunu döndürür?
Özet
let, it kullanır ve lambda'nın sonucunu döndürür; boş değer güvenli dönüşümler ve kapsam sınırlama için harikadır. run, this kullanır ve lambda'nın sonucunu döndürür; alıcının birçok üyesini çağırdığınızda idealdir. Her ikisi de ifade tarzı kodlarda çok etkilidir.
Sıkça Sorulan Sorular
“let ve run: Dönüştürme ve Kapsam” dersi ücretsiz mi?
Evet — “let ve run: Dönüştürme ve Kapsam” 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.
“let ve run: Dönüştürme ve Kapsam” dersinde ne öğreneceğim?
Null güvenli dönüşümler için let, yerel hesaplamalar için run uygulayı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 2. dersidir.
“let ve run: Dönüştürme ve Kapsam” 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
- apply ve with: Yapılandırma ve Döndürme
- let ve run: Dönüştürme ve Kapsam
- also: Alıcıyı Değiştirmeden Yan Etkiler
- Doğru Kapsam İşlevini Seçme: Karar Rehberi