Middle
Kotlin programlama dilinde lambda ifadeleri nasıl çalışır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin'deki lambda ifadeleri anonim fonksiyonlardır. Argüman olarak geçirilebilir veya değişkende saklanabilirler.
Ana noktalar:
- Sözdizimi:
{}süslü parantezler. Parametreler->okundan önce belirtilir, fonksiyon gövdesi sonra gelir. Parametre yoksa ok kullanılmayabilir. - Varsayılan
itparametre adı: Lambda tek bir parametreye sahipse, açıkça tanımlamaya gerek yoktur,itadıyla erişilebilir. - Dönüş değeri: Lambda gövdesindeki son ifade onun dönüş değeridir.
- Kapanışlar (Closures): Lambdalar, tanımlandıkları kapsamdaki değişkenlere erişebilir ve değiştirebilir.
Örnekler:
// Parametresiz lambda
val hello = { println("Hello, world!") }
hello() // Lambda çağrısı
// Bir parametreli lambda (açık deklarasyon)
val square = { number: Int -> number * number }
println(square(5))
// `it` kullanımıyla lambda
val increment = { it + 1 }
println(increment(10))
// Birden fazla parametreli lambda
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))
// Yüksek seviyeli fonksiyonun argümanı olarak lambda
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Lambda geçirme
Anonim fonksiyonlarla karşılaştırma (daha detaylı):
| Özellik | Lambda ifadesi | Anonim fonksiyon |
|---|---|---|
| Sözdizimi | {} |
fun (...) |
| Dönüş değeri | Son ifade | Açık return kullanımı |
İç return |
Üst fonksiyondan döner (lokal olmayan dönüş) | Kendinden döner (lokal dönüş) |
it kullanımı |
Evet (bir parametre için) | Hayır |
Kotlin'de lambdalar, özellikle yüksek seviyeli fonksiyonlar (map, filter, forEach vb.) ile, özlü ve ifadeli kodlar oluşturmak için yaygın şekilde kullanılır. Derleyici bunların kullanımını optimize eder.