Middle
Wie funktionieren Lambda-Ausdrücke in der Programmiersprache Kotlin?
sobes.tech KI
Antwort von AI
Lambda-Ausdrücke in Kotlin stellen anonyme Funktionen dar. Sie können als Argumente übergeben oder in Variablen gespeichert werden.
Wichtige Punkte:
- Syntax: Geschweifte Klammern
{}. Parameter werden vor dem Pfeil->angegeben, der Funktionskörper danach. Wenn keine Parameter vorhanden sind, ist der Pfeil optional. - Impliziter Parametername
it: Wenn die Lambda nur einen Parameter hat, muss dieser nicht explizit deklariert werden, er ist unter dem Namenitzugänglich. - Rückgabewert: Der letzte Ausdruck im Lambda-Körper ist ihr Rückgabewert.
- Closures: Lambdas können auf Variablen im Gültigkeitsbereich zugreifen und diese ändern, in dem sie definiert wurden.
Beispiele:
// Lambda ohne Parameter
val hello = { println("Hello, world!") }
hello() // Lambda aufrufen
// Lambda mit einem Parameter (explizite Deklaration)
val square = { number: Int -> number * number }
println(square(5))
// Lambda mit einem Parameter (Verwendung von 'it')
val increment = { it + 1 }
println(increment(10))
// Lambda mit mehreren Parametern
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))
// Lambda als Argument einer Higher-Order-Funktion
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Lambda übergeben
Vergleich mit anonymen Funktionen (detaillierter):
| Merkmal | Lambda-Ausdruck | Anonyme Funktion |
|---|---|---|
| Syntax | {} |
fun (...) |
| Rückgabewert | Letzter Ausdruck | Explizites return |
return innerhalb |
Gibt aus der umgebenden Funktion zurück (nicht-lokaler Rückgabewert) | Gibt aus der anonymen Funktion zurück (lokaler Rückgabewert) |
Verwendung von it |
Ja (für einen Parameter) | Nein |
Lambdas werden in Kotlin häufig verwendet, insbesondere mit Higher-Order-Funktionen (map, filter, forEach usw.), um prägnanten und ausdrucksstarken Code zu erstellen. Der Compiler optimiert deren Verwendung.