Middle
Hogyan működnek a lambda kifejezések a Kotlin programozási nyelvben?
sobes.tech MI
Válasz az MI-től
A Kotlinban a lambda kifejezések névtelen függvényeket képviselnek. Átadhatók argumentumként vagy változóban tárolhatók.
Főbb pontok:
- Szintaxis: Kapcsos zárójelek
{}. A paramétereket a nyíl->előtt adjuk meg, a függvény törzsét utána. Ha nincsenek paraméterek, a nyíl opcionális. - Implicit
itparaméternév: Ha a lambda egy paraméterrel rendelkezik, nem szükséges explicit módon deklarálni, az elérhetőitnéven. - Visszatérési érték: A lambda törzsében az utolsó kifejezés a visszatérési érték.
- Zárványok (Closures): A lambdák hozzáférhetnek és módosíthatják a definíciójuk helyén lévő változókat.
Példák:
// Paraméter nélküli lambda
val hello = { println("Hello, world!") }
hello() // Lambda hívása
// Egy paraméteres lambda (nyilvános deklaráció)
val square = { number: Int -> number * number }
println(square(5))
// `it` használatával lambda
val increment = { it + 1 }
println(increment(10))
// Több paraméteres lambda
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))
// Lambda magasabb rendű függvény argumentumaként
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Lambda átadása
Összehasonlítás névtelen függvényekkel (részletesebben):
| Jellemző | Lambda kifejezés | Név nélküli függvény |
|---|---|---|
| Szintaxis | {} |
fun (...) |
| Visszatérési érték | Utolsó kifejezés | return explicit |
return belül |
A szülő függvényből visszatér (nem helyi visszatérés) | A névtelen függvényből visszatér (helyi visszatérés) |
it használata |
Igen (egy paraméterhez) | Nem |
A lambdák széles körben használatosak Kotlinban, különösen magasabb rendű függvényekkel (map, filter, forEach, stb.), hogy tömör és kifejező kódot hozzanak létre. A fordító optimalizálja azok használatát.