0Pricing
Kotlin Academy · Ders

also: Alıcıyı Değiştirmeden Yan Etkiler

Günlükleme, hata ayıklama ve yalnızca yan etki oluşturan işlemler için also kullanın.

also: Alıcıyı Değiştirmeden Yan Etkiler, 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.

also Genel Bakış

also, alıcıyı it olarak kullanan bir blok çalıştırır ve alıcıyı değiştirmeden döndürür. Zinciri bozmadan yan etkiler (günlük kaydı, hata ayıklama, doğrulama) için idealdir.

Temel also

also { ... } bir yan etki gerçekleştirir ve aynı değeri geri verir; böylece çağrılar doğal biçimde akabilir.

fun main() {
    val nums = listOf(1, 2, 3, 4)
        .also { println("input: $it") }
        .filter { it % 2 == 0 }
        .also { println("filtered: $it") }
    println(nums)
}

Günlük Kaydı için also

Akışı bozmadan işlem hattının ortasına günlük iletileri ekleyin.

fun main() {
    val processed = "  Hello, Kotlin!  "
        .also { println("raw: '$it'") }
        .trim()
        .also { println("trimmed: '$it'") }
        .uppercase()
    println(processed)
}

Hata Ayıklama için also

Bir yeniden düzenleme sırasında ara durumu incelemek için also kullanın; daha sonra zinciri değiştirmeden kaldırabilirsiniz.

fun main() {
    val sum = (1..5).toList()
        .also { println("list: $it") }
        .sum()
        .also { println("sum: $it") }
    println("final: $sum")
}

also ve apply

apply, this kullanır (atamalar için daha iyidir). also, it kullanır (açık başvurular ve yan etkiler için daha iyidir).

class Counter {
    var value: Int = 0
}
fun main() {
    val c = Counter().apply { value = 10 } // uses this implicitly
    val d = Counter().also { it.value = 10 } // uses it explicitly
    println("${c.value} / ${d.value}")
}

Başlatma Yan Etkileri için also

Bir nesne oluşturulurken özellik ayarlamak dışında nesneyle bir işlem yapmanız gerektiğinde kullanışlıdır.

class Repository {
    val cache = mutableMapOf<String, String>()
    fun init() = println("Repository initialized")
}
fun main() {
    val r = Repository().also { it.init() }
    r.cache["key"] = "value"
    println(r.cache)
}

also Özgün Değeri Döndürür

Alıcı değiştirilmeden aktarılır; zincirleme yapmak kolaydır.

fun main() {
    val len = "Hello".also { println("got: $it") }.length
    println(len) // 5
}

Doğrulama için also

Zincirin ortasında doğrulamalar çalıştırın.

fun main() {
    val n = listOf(1, 2, 3, 4)
        .filter { it > 0 }
        .also { require(it.isNotEmpty()) { "must have positives" } }
        .sum()
    println(n)
}

also ve let'i Birleştirme

Aynı işlem hattında yan etkiler için also, dönüşüm için let kullanın.

fun main() {
    val raw: String? = "  42  "
    val n = raw
        ?.also { println("raw: '$it'") }
        ?.let { it.trim().toIntOrNull() }
        ?.also { println("parsed: $it") }
    println(n)
}

Koleksiyona Eklemek için also

Oluşturulmuş bir nesneyi satır içinde bir listeye ekleyin.

class User(val name: String)
fun main() {
    val users = mutableListOf<User>()
    val ada = User("Ada").also { users.add(it) }
    val ben = User("Ben").also { users.add(it) }
    println(users.map { it.name })
}

also Ne Zaman Kullanılır

Bir yan etkiye (günlük kaydı, doğrulama, kaydetme) ihtiyacınız olduğunda, ancak özgün değerin akışını sürdürmesini istediğinizde also kullanın.

fun main() {
    val total = listOf(10, 20, 30, 40, 50)
        .also { println("count: ${it.size}") }
        .filter { it >= 30 }
        .also { println("kept: $it") }
        .sum()
    println("total: $total")
}

Karşı Kalıp: Yeniden Atama için also

Aslında dönüştürme yapmanız gerekiyorsa also kullanmayın; bunun için let/run vardır.

fun main() {
    val name = "ada"
    // BAD: also returns receiver, so upper is wrong
    // val upper = name.also { it.uppercase() } // upper == "ada"
    val upper = name.let { it.uppercase() }
    println(upper) // ADA
}

Hızlı Kontrol

also, bloğunu çalıştırdıktan sonra hangi değeri döndürür?

Özet

also, it ile bir yan etki bloğu çalıştırır ve alıcıyı döndürür. Değeri değiştirmeden göz atmanız gereken her yerde, günlük kaydı, hata ayıklama, doğrulama ve kaydetme için kullanın. Dönüşümler için bunun yerine let veya run kullanın.

Sıkça Sorulan Sorular

“also: Alıcıyı Değiştirmeden Yan Etkiler” dersi ücretsiz mi?

Evet — “also: Alıcıyı Değiştirmeden Yan Etkiler” 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.

“also: Alıcıyı Değiştirmeden Yan Etkiler” dersinde ne öğreneceğim?

Günlükleme, hata ayıklama ve yalnızca yan etki oluşturan işlemler için also 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.

“also: Alıcıyı Değiştirmeden Yan Etkiler” 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