0Pricing
Android Academy · Ders

Lambda'lar ve Üst Düzey İşlevler

Davranışı değer olarak aktarın.

Lambda'lar ve Üst Düzey İşlevler, CoddyKit'te ücretsiz bir Android 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, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 4 dersten oluşur.

Lambda Nedir?

Lambda, ad vermeden satır içinde yazabileceğiniz küçük bir işlevdir.

Onu süslü parantezlerin içine alırsınız: { x -> x + 1 }. Lambdalar, davranışları veriler gibi aktarmanızı sağlar.

Onları daha önce map ve filter ile kullandınız.

Lambdayı Bir Değişkende Saklama

Lambda bir değerdir; bu nedenle onu bir değişkende saklayıp daha sonra çağırabilirsiniz.

Parantezleri kullanarak onu bir işlev gibi çağırın.

fun main() {
    val square = { x: Int -> x * x }
    println(square(5))
    println(square(3))
}

it Kısayolu

Bir lambda tam olarak bir parametre aldığında, parametreye ad vermeyi atlayıp it kullanabilirsiniz.

Bu, kısa lambaları daha kısa ve okunabilir tutar.

fun main() {
    val nums = listOf(1, 2, 3, 4)
    val big = nums.filter { it > 2 }
    println(big)
}

Birden Çok Parametre

Bir lambda, ok işaretinden önce virgüllerle ayrılmış birden fazla parametre alabilir.

Lambdadaki son ifade, onun dönüş değeridir.

fun main() {
    val add = { a: Int, b: Int -> a + b }
    println(add(4, 6))
}

Üst Düzey İşlevler

Üst düzey işlev, parametre olarak başka bir işlev alan veya bir işlev döndüren işlevdir.

(Int) -> Int işlev türü, "bir Int alır, bir Int döndürür" anlamına gelir. map ve filter böyle çalışır.

Üst Düzey İşlev Yazma

Burada bir işlev kabul eden ve onu iki kez çalıştıran applyTwice işlevini tanımlıyoruz.

op parametresinin türü (Int) -> Int'tir.

fun applyTwice(x: Int, op: (Int) -> Int): Int {
    return op(op(x))
}

fun main() {
    println(applyTwice(3) { it + 1 })
}

Sondaki Lambda Sözdizimi

Lambda son bağımsız değişkense onu parantezlerin dışına taşıyabilirsiniz.

Bu nedenle list.filter { ... } ifadesi bu kadar temiz görünür. Aşağıdaki iki biçim eşdeğerdir.

fun main() {
    val nums = listOf(1, 2, 3)
    println(nums.map({ it * 2 }))
    println(nums.map { it * 2 })
}

Adlandırılmış İşlevleri Aktarma

Lambda beklenen yerde, mevcut bir adlandırılmış işlevi :: kullanarak aktarabilirsiniz; buna işlev başvurusu denir.

Bu, mantığı lambda olarak yeniden yazmanızı önler.

fun isOdd(n: Int) = n % 2 == 1

fun main() {
    val nums = listOf(1, 2, 3, 4)
    println(nums.filter(::isOdd))
}

İşlev Döndürme

Üst düzey bir işlev, bir işlev de döndürebilir. Burada multiplier, özel bir çarpma lambdası oluşturur.

Bu, basit bir yapılandırma biçimidir.

fun multiplier(factor: Int): (Int) -> Int {
    return { it * factor }
}

fun main() {
    val triple = multiplier(3)
    println(triple(5))
}

Lambdalar Değişkenleri Kapsar

Bir lambda, çevresindeki kapsamdaki değişkenleri okuyabilir. Buna kapanım denir.

Burada lambda, başka bir yere aktarıldıktan sonra bile bonus değişkenini hatırlar.

fun main() {
    val bonus = 10
    val nums = listOf(1, 2, 3)
    println(nums.map { it + bonus })
}

Lambdalar Android'de Neden Önemlidir?

Android'de lambdalar geri çağırmaları anlaşılır biçimde ifade eder. Bir düğme tıklama dinleyicisi, çerçeveye aktardığınız basitçe bir lambdadır.

Örneğin: button.setOnClickListener { showMenu() }, düğmeye dokunulduğunda kodunuzu çalıştırır.

Hızlı Kontrol

Lambda'lar ve üst düzey işlevler anlayışınızı test edin.

Özet

Lambdalar, tek bir parametre için it kullanılarak süslü parantezlerle yazılan, adsız satır içi işlevlerdir.

Üst düzey işlevler işlev alır veya döndürür; böylece anlaşılır geri çağırmalar ve map ile filter gibi yeniden kullanılabilir işlemler sağlar.

Sıkça Sorulan Sorular

“Lambda'lar ve Üst Düzey İşlevler” dersi ücretsiz mi?

Evet — “Lambda'lar ve Üst Düzey İşlevler” 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 Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 4 dersten oluşur.

“Lambda'lar ve Üst Düzey İşlevler” dersinde ne öğreneceğim?

Davranışı değer olarak aktarın. Android 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.

Android Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Android 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.

“Lambda'lar ve Üst Düzey İşlevler” 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 Android Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Android 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. Listeler ve Değiştirilebilir Listeler
  2. Haritalar ve Kümeler
  3. map, filter, forEach
  4. Lambda'lar ve Üst Düzey İşlevler
← Android Academy Sayfasına Dön