Middle
Kako funkcionišu lambda izrazi u programskom jeziku Kotlin?
sobes.tech АИ
Одговор од АИ
Izrazi lambda u Kotlinu predstavljaju anonimne funkcije. Mogu biti prosleđeni kao argumenti ili sačuvani u promenljive.
Ključne tačke:
- Sintaksa: Zagrade
{}. Parametri se navode pre strelice->, telo funkcije nakon nje. Ako nema parametara, strelica je opcionalna. - Implicitno ime parametra
it: Ako lambda ima jedan parametar, nije potrebno da ga eksplicitno deklaršete, biće dostupan pod imenomit. - Vrednost povratka: Poslednja izraza u telu lambde je njena vrednost povratka.
- Zatvaranja (Closures): Lambde mogu pristupati i menjati promenljive iz opsega u kojem su definisane.
Primeri:
// Lambda bez parametara
val hello = { println("Hello, world!") }
hello() // Pozivanje lambde
// Lambda sa jednim parametrom (izričita deklaracija)
val square = { number: Int -> number * number }
println(square(5))
// Lambda sa jednim parametrom (korišćenje `it`)
val increment = { it + 1 }
println(increment(10))
// Lambda sa više parametara
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))
// Lambda kao argument funkcije višeg reda
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Prosleđivanje lambde
Upoređenje sa anonimnim funkcijama (detaljnije):
| Osobina | Lambda izraz | Anonimna funkcija |
|---|---|---|
| Sintaksa | {} |
fun (...) |
| Vrednost povratka | Poslednji izraz | return eksplicitno |
return unutar |
Vraća iz roditeljske funkcije (neta lokalni return) | Vraća iz same anonimne funkcije (lokalni return) |
Korišćenje it |
Da (za jedan parametar) | Ne |
Lambde su široko korišćene u Kotlinu, posebno sa funkcijama višeg reda (map, filter, forEach i dr.), za kreiranje konciznog i izražajnog koda. Kompilator ih optimizuje.