0Pricing
Kotlin Academy · Ders

Doğru Kapsam İşlevini Seçme: Karar Rehberi

Alıcıya, dönüş türüne ve amaca göre doğru kapsam işlevini seçin.

Doğru Kapsam İşlevini Seçme: Karar Rehberi, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 4. 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.

Beş İşlev, İki Eksen

Kotlin'in kapsam işlevleri iki eksende farklılaşır: alıcı biçimi (this veya it) ve dönüş değeri (alıcı veya lambda sonucu). Seçiminizi amacınıza göre yapın.

Karar Matrisi

apply: this / alıcı. also: it / alıcı. run: this / lambda. let: it / lambda. with: this / lambda (nokta aracılığıyla alıcı yok).

apply: Yapılandır ve Döndür

Oluşturucu tarzı bir zincirde nesne yapılandırması için apply kullanın.

class Config {
    var host: String = ""
    var port: Int = 0
}
fun main() {
    val cfg = Config().apply {
        host = "localhost"
        port = 8080
    }
    println("${cfg.host}:${cfg.port}")
}

also: Yan Etkiler

Alıcıyı akışta tutarken günlük kaydı yapmak, doğrulamak veya bir yan etki tetiklemek için also kullanın.

fun main() {
    val items = listOf(1, 2, 3, 4)
        .also { println("got ${it.size} items") }
        .filter { it % 2 == 0 }
    println(items)
}

let: Dönüştür ve Boş Değer Güvenliğini Sağla

Boş değer güvenli dönüşümler için veya bir değişkenin kapsamını sınırlamak için let kullanın.

fun main() {
    val name: String? = "Ada"
    val length = name?.let { it.length } ?: 0
    println(length)
}

run: Sonuçla Birlikte Çoklu Üye Erişimi

Alıcının birçok üyesinden bir sonuç hesaplarken run kullanın; it. öneklerinden tasarruf sağlar.

class User(val name: String, val age: Int)
fun main() {
    val description = User("Ada", 35).run {
        "Name: $name, Age: $age"
    }
    println(description)
}

with: Var Olan Bir Nesne Üzerindeki İşlemleri Gruplama

Çağrı noktasının sahibi olmadığınızda (nokta zinciri yokken), ancak işlemleri this kullanarak gruplamak istediğinizde with(obj) { ... } kullanın.

class Builder {
    val parts = mutableListOf<String>()
    fun add(s: String) { parts.add(s) }
    fun build(): String = parts.joinToString("-")
}
fun main() {
    val b = Builder()
    val result = with(b) {
        add("hello")
        add("kotlin")
        build()
    }
    println(result) // hello-kotlin
}

Amaca göre Seçim Yapma

Şunları sorun: (1) Alıcıya mı, yoksa türetilmiş bir sonuca mı ihtiyacım var? (2) this yerine it kullanmayı mı tercih ediyorum? Yanıtlar işlevi seçmenizi sağlar.

class Box { var w = 0; var h = 0; fun area() = w * h }
fun main() {
    // Configure and return Box -> apply
    val box = Box().apply { w = 3; h = 4 }
    // Compute area from box -> let or run
    val area = box.let { it.area() }
    // Side effect, keep box -> also
    val sameBox = box.also { println("area=${it.area()}") }
    println("$box / $area / $sameBox")
}

Karşılaştırma: apply ve also

İkisi de alıcıyı döndürür. apply, this kullanır (alanları ayarlamak için iyidir). also, it kullanır (alıcıya açıkça başvurmak, özellikle yan etkiler içinde, için iyidir).

class Item { var name = "" }
fun main() {
    val a = Item().apply { name = "apply" } // implicit this
    val b = Item().also { it.name = "also" } // explicit it
    println("${a.name} / ${b.name}")
}

Karşılaştırma: let ve run

İkisi de lambda'nın sonucunu döndürür. let, it kullanır (basit dönüşümler ve boş değer güvenliği için iyidir). run, this kullanır (birçok üyeyi çağırdığınızda iyidir).

class Calculator(val a: Int, val b: Int) {
    fun sum() = a + b
    fun product() = a * b
}
fun main() {
    val calc = Calculator(3, 4)
    val s = calc.let { it.sum() }                  // simple
    val combo = calc.run { "sum=${sum()} product=${product()}" } // multi-member
    println("$s / $combo")
}

Uygulamalı İşlem Hattı

Gerçek dünyadaki bir zincir genellikle birden çok kapsam işlevini birlikte kullanır.

class Request(var url: String = "", var headers: Map<String, String> = emptyMap())
fun main() {
    val response = Request()
        .apply {
            url = "https://api.example.com"
            headers = mapOf("Accept" to "json")
        }
        .also { println("request: ${it.url}") }
        .let { req -> "GET ${req.url}" }
    println(response)
}

Başvuru Özeti

Doğru aracı seçmek için hızlı başvuru.

// apply: this, returns receiver — configure object
// also: it, returns receiver — side effects in chain
// let: it, returns lambda result — transform / null-safety
// run: this, returns lambda result — multi-member compute
// with: this, returns lambda result — group operations on existing obj
fun main() { println("Scope functions: pick by receiver style + return value") }

Hızlı Kontrol

Hangi kapsam işlevi alıcı olarak this kullanır VE alıcının kendisini döndürür?

Özet

Kapsam işlevini amacınıza göre seçin: apply (yapılandırma + kendisini döndürme), also (yan etki + kendisini döndürme), let (it ile dönüştürme), run (this ile dönüştürme), with (var olan bir nesne üzerindeki işlemleri gruplama). İki eksen — alıcı biçimi ve dönüş değeri — doğru seçimi belirler.

Sıkça Sorulan Sorular

“Doğru Kapsam İşlevini Seçme: Karar Rehberi” dersi ücretsiz mi?

Evet — “Doğru Kapsam İşlevini Seçme: Karar Rehberi” 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.

“Doğru Kapsam İşlevini Seçme: Karar Rehberi” dersinde ne öğreneceğim?

Alıcıya, dönüş türüne ve amaca göre doğru kapsam işlevini seçin. 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 4. dersidir.

“Doğru Kapsam İşlevini Seçme: Karar Rehberi” 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. apply ve with: Yapılandırma ve Döndürme
  2. let ve run: Dönüştürme ve Kapsam
  3. also: Alıcıyı Değiştirmeden Yan Etkiler
  4. Doğru Kapsam İşlevini Seçme: Karar Rehberi
← Kotlin Academy Sayfasına Dön