Sobes.tech
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 it paraméternév: Ha a lambda egy paraméterrel rendelkezik, nem szükséges explicit módon deklarálni, az elérhető it né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.