Sobes.tech
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 Namen it zugä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.