0Pricing
Kotlin Academy · Lektion

Lambdas an Funktionen übergeben

Übergeben Sie Lambdas als Argumente und verwenden Sie die Syntax für nachgestellte Lambdas.

Lambdas an Funktionen übergeben ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Funktionen, die Lambdas akzeptieren

Eine Funktion höherer Ordnung ist eine Funktion, die eine Funktion (z. B. eine Lambda) als Parameter entgegennimmt. So funktionieren map, filter und forEach.

Eine Funktion höherer Ordnung deklarieren

Verwenden Sie einen Funktionstyp als Parametertyp.
fun applyTwice(n: Int, op: (Int) -> Int): Int {
    return op(op(n))
}
println(applyTwice(3, { it * 2 }))  // 12

Syntax für eine nachgestellte Lambda

Wenn der letzte Parameter eine Funktion ist, können Sie die Lambda außerhalb der Klammern platzieren. Dies wird als Syntax für eine nachgestellte Lambda bezeichnet.
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))

// Standard:
applyTwice(3, { it * 2 })
// Trailing lambda:
applyTwice(3) { it * 2 }

Nachgestellte Lambda ohne Klammern

Wenn die Lambda das EINZIGE Argument ist, können Sie die Klammern vollständig weglassen.
fun execute(block: () -> Unit) = block()

// With parens:
execute({ println("Hello") })
// Without parens (idiomatic):
execute { println("Hello") }

Eine Lambda-Variable übergeben

Sie können eine gespeicherte Lambda-Referenz mithilfe ihres Variablennamens übergeben.
val double = { n: Int -> n * 2 }
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(5, double))  // 20

Funktionsreferenzen mit ::

Verwenden Sie ::, um eine benannte Funktion als Lambda-kompatibles Argument zu übergeben.
fun triple(n: Int) = n * 3
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(2, ::triple))  // 18

Mehrere Lambda-Parameter

Eine Funktion kann mehrere Lambda-Parameter akzeptieren. Nur der letzte kann die Trailing-Lambda-Syntax verwenden.
fun transform(
    value: Int,
    before: (Int) -> Int,
    after: (Int) -> Int
) = after(before(value))

println(transform(5, { it * 2 }, { it + 1 }))  // 11

Ein Lambda an filter übergeben

filter akzeptiert ein Prädikat-Lambda – eine Funktion, die ein Element in einen Boolean-Wert umwandelt.
val numbers = listOf(1, 2, 3, 4, 5, 6)
val evens = numbers.filter { it % 2 == 0 }
println(evens)  // [2, 4, 6]

Funktionen höherer Ordnung verketten

Verketten Sie mehrere Aufrufe von Funktionen höherer Ordnung zu ausdrucksstarken Datenpipelines.
val result = (1..10)
    .filter { it % 2 != 0 }  // odds
    .map { it * it }          // square
    .take(3)                  // first 3
println(result)  // [1, 9, 25]

Variablen in Lambdas erfassen

Lambdas können Variablen aus dem umgebenden Gültigkeitsbereich erfassen (Closure). In Kotlin können sie sogar var erfassen und verändern.
var total = 0
listOf(1, 2, 3, 4).forEach { total += it }
println(total)  // 10

Ein Lambda aus einer Funktion zurückgeben

Funktionen höherer Ordnung können auch Lambdas zurückgeben und so Factory-Funktionen erzeugen.
fun multiplierOf(factor: Int): (Int) -> Int {
    return { n -> n * factor }
}
val double = multiplierOf(2)
val triple = multiplierOf(3)
println(double(5))  // 10
println(triple(5))  // 15

Schnelltest

Wann können Sie ein Lambda mithilfe der Trailing-Lambda-Syntax außerhalb der Klammern platzieren?

Zusammenfassung

Funktionen höherer Ordnung nehmen Lambdas als Parameter entgegen. Die Trailing-Lambda-Syntax platziert das Lambda außerhalb der Klammern, wenn es an letzter Stelle steht. :: übergibt benannte Funktionsreferenzen. Als Nächstes: der implizite Parameter it!

Häufig gestellte Fragen

Ist die Lektion „Lambdas an Funktionen übergeben“ kostenlos?

Ja — der vollständige Text von „Lambdas an Funktionen übergeben“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Lambdas an Funktionen übergeben“?

Übergeben Sie Lambdas als Argumente und verwenden Sie die Syntax für nachgestellte Lambdas. Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Lambdas an Funktionen übergeben“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Was ist ein Lambda? Syntax und Typen
  2. Lambdas an Funktionen übergeben
  3. it: Der implizite Parameter
  4. filter, map und find für Collections
← Zurück zu Kotlin Academy