0Pricing
Kotlin Academy · Ders

İşlevlere Lambda Aktarma

Lambda ifadelerini bağımsız değişken olarak aktarın ve sondaki lambda söz dizimini kullanın.

İşlevlere Lambda Aktarma, 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.

Lambda Kabul Eden İşlevler

Üst düzey işlev, bir işlevi (lambda gibi) parametre olarak alan işlevdir. map, filter ve forEach bu şekilde çalışır.

Üst Düzey İşlev Tanımlama

Parametre türü olarak bir işlev türü kullanın.
fun applyTwice(n: Int, op: (Int) -> Int): Int {
    return op(op(n))
}
println(applyTwice(3, { it * 2 }))  // 12

Sondaki Lambda Sözdizimi

Son parametre bir işlevse lambdayı parantezlerin dışına taşıyabilirsiniz. Bu, "sondaki lambda" sözdizimidir.
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))

// Standard:
applyTwice(3, { it * 2 })
// Trailing lambda:
applyTwice(3) { it * 2 }

Parantezsiz Sondaki Lambda

Lambda ONLY bağımsız değişkense parantezleri tamamen atlayabilirsiniz.
fun execute(block: () -> Unit) = block()

// With parens:
execute({ println("Hello") })
// Without parens (idiomatic):
execute { println("Hello") }

Lambda Değişkeni Geçirme

Saklanan bir lambda başvurusunu değişken adını kullanarak geçirebilirsiniz.
val double = { n: Int -> n * 2 }
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(5, double))  // 20

:: ile İşlev Başvuruları

Adlandırılmış bir işlevi lambda ile uyumlu bir bağımsız değişken olarak geçirmek için :: kullanın.
fun triple(n: Int) = n * 3
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(2, ::triple))  // 18

Birden Çok Lambda Parametresi

Bir işlev birden çok lambda parametresi kabul edebilir. Yalnızca sonuncusu sondaki lambda sözdizimini kullanabilir.
fun transform(
    value: Int,
    before: (Int) -> Int,
    after: (Int) -> Int
) = after(before(value))

println(transform(5, { it * 2 }, { it + 1 }))  // 11

Filtreleme İşlevine Lambda Aktarma

filter, öğeden Boolean değerine giden bir koşul lambdasını kabul eder.
val numbers = listOf(1, 2, 3, 4, 5, 6)
val evens = numbers.filter { it % 2 == 0 }
println(evens)  // [2, 4, 6]

Üst Düzey İşlevleri Zincirleme

Anlatımı güçlü işlem hatları oluşturmak için birden çok üst düzey işlev çağrısını zincirleyebilirsiniz.
val result = (1..10)
    .filter { it % 2 != 0 }  // odds
    .map { it * it }          // square
    .take(3)                  // first 3
println(result)  // [1, 9, 25]

Lambda'nın Değişkenleri Yakalamasi

Lambdalar, çevreleyen kapsamdan değişkenleri (kapanış) yakalayabilir. Kotlin'de var değişkenlerini yakalayıp değiştirebilirler.
var total = 0
listOf(1, 2, 3, 4).forEach { total += it }
println(total)  // 10

Bir İşlevden Lambda Döndürme

Üst düzey işlevler lambda'lar da döndürebilir ve fabrika işlevleri oluşturabilir.
fun multiplierOf(factor: Int): (Int) -> Int {
    return { n -> n * factor }
}
val double = multiplierOf(2)
val triple = multiplierOf(3)
println(double(5))  // 10
println(triple(5))  // 15

Kısa Denetim

Sondaki lambda sözdizimini kullanarak bir lambdayı parantezlerin dışına ne zaman taşıyabilirsiniz?

Özet

Üst düzey işlevler parametre olarak lambda'lar alır. Sondaki lambda sözdizimi, lambda son parametre olduğunda onu parantezlerin dışına taşır. ::, adlandırılmış işlev başvurularını aktarır. Sıradaki konu: örtük it parametresi!

Sıkça Sorulan Sorular

“İşlevlere Lambda Aktarma” dersi ücretsiz mi?

Evet — “İşlevlere Lambda Aktarma” 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.

“İşlevlere Lambda Aktarma” dersinde ne öğreneceğim?

Lambda ifadelerini bağımsız değişken olarak aktarın ve sondaki lambda söz dizimini 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 2. dersidir.

“İşlevlere Lambda Aktarma” 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. Lambda Nedir? Söz Dizimi ve Türleri
  2. İşlevlere Lambda Aktarma
  3. it: Örtük Parametre
  4. Koleksiyonlarda filter, map ve find
← Kotlin Academy Sayfasına Dön