0Pricing
Android Academy · Lektion

Lambdas und Higher-Order-Funktionen

Übergeben Sie Verhalten als Werte.

Lambdas und Higher-Order-Funktionen ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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 Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist eine Lambda-Funktion?

Eine Lambda-Funktion ist eine kleine Funktion, die Sie direkt im Code schreiben können, ohne ihr einen Namen zu geben.

Sie wird in geschweifte Klammern eingeschlossen: { x -> x + 1 }. Mit Lambda-Funktionen können Sie Verhalten ähnlich wie Daten übergeben.

Sie haben sie bereits mit map und filter verwendet.

Eine Lambda-Funktion in einer Variable speichern

Eine Lambda-Funktion ist ein Wert. Sie können sie daher in einer Variable speichern und später aufrufen.

Rufen Sie sie wie eine Funktion mit runden Klammern auf.

fun main() {
    val square = { x: Int -> x * x }
    println(square(5))
    println(square(3))
}

Die Kurzschreibweise it

Wenn eine Lambda-Funktion genau einen Parameter erwartet, können Sie dessen Namen weglassen und it verwenden.

Dadurch bleiben kurze Lambda-Funktionen kompakt und gut lesbar.

fun main() {
    val nums = listOf(1, 2, 3, 4)
    val big = nums.filter { it > 2 }
    println(big)
}

Mehrere Parameter

Eine Lambda-Funktion kann mehr als einen Parameter erwarten. Diese werden vor dem Pfeil durch Kommas getrennt.

Der letzte Ausdruck in der Lambda-Funktion ist ihr Rückgabewert.

fun main() {
    val add = { a: Int, b: Int -> a + b }
    println(add(4, 6))
}

Funktionen höherer Ordnung

Eine Funktion höherer Ordnung ist eine Funktion, die eine andere Funktion als Parameter erwartet oder eine Funktion zurückgibt.

Der Funktionstyp (Int) -> Int bedeutet „nimmt ein Int entgegen und gibt ein Int zurück“. So funktionieren map und filter.

Eine Funktion höherer Ordnung schreiben

Hier definieren wir applyTwice, das eine Funktion entgegennimmt und sie zweimal ausführt.

Der Parameter op hat den Typ (Int) -> Int.

fun applyTwice(x: Int, op: (Int) -> Int): Int {
    return op(op(x))
}

fun main() {
    println(applyTwice(3) { it + 1 })
}

Syntax für nachgestellte Lambda-Funktionen

Wenn eine Lambda-Funktion das letzte Argument ist, können Sie sie außerhalb der runden Klammern schreiben.

Deshalb wirkt list.filter { ... } so übersichtlich. Beide folgenden Formen sind gleichwertig.

fun main() {
    val nums = listOf(1, 2, 3)
    println(nums.map({ it * 2 }))
    println(nums.map { it * 2 })
}

Benannte Funktionen übergeben

Sie können eine vorhandene benannte Funktion mit :: an einer Stelle übergeben, an der eine Lambda-Funktion erwartet wird. Dies wird als Funktionsreferenz bezeichnet.

So müssen Sie die Logik nicht als Lambda-Funktion neu schreiben.

fun isOdd(n: Int) = n % 2 == 1

fun main() {
    val nums = listOf(1, 2, 3, 4)
    println(nums.filter(::isOdd))
}

Eine Funktion zurückgeben

Eine Funktion höherer Ordnung kann auch eine Funktion zurückgeben. Hier erstellt multiplier eine benutzerdefinierte Lambda-Funktion zur Multiplikation.

Dies ist eine einfache Form der Konfiguration.

fun multiplier(factor: Int): (Int) -> Int {
    return { it * factor }
}

fun main() {
    val triple = multiplier(3)
    println(triple(5))
}

Lambda-Funktionen erfassen Variablen

Eine Lambda-Funktion kann Variablen aus dem umgebenden Gültigkeitsbereich lesen. Das wird als Closure bezeichnet.

Hier merkt sich die Lambda-Funktion bonus, auch nachdem sie an anderer Stelle übergeben wurde.

fun main() {
    val bonus = 10
    val nums = listOf(1, 2, 3)
    println(nums.map { it + bonus })
}

Warum Lambda-Funktionen für Android wichtig sind

Unter Android lassen sich Callbacks mit Lambda-Funktionen übersichtlich ausdrücken. Ein Listener für einen Button-Klick ist einfach eine Lambda-Funktion, die Sie an das Framework übergeben.

Zum Beispiel führt button.setOnClickListener { showMenu() } Ihren Code aus, wenn auf den Button getippt wird.

Schnelltest

Testen Sie Ihr Verständnis von Lambda-Funktionen und Funktionen höherer Ordnung.

Zusammenfassung

Lambda-Funktionen sind unbenannte Funktionen, die direkt in geschweiften Klammern geschrieben werden. Bei einem einzelnen Parameter verwenden sie it.

Funktionen höherer Ordnung nehmen Funktionen entgegen oder geben sie zurück. Dadurch ermöglichen sie übersichtliche Callbacks und wiederverwendbare Operationen wie map und filter.

Häufig gestellte Fragen

Ist die Lektion „Lambdas und Higher-Order-Funktionen“ kostenlos?

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

Was lerne ich in „Lambdas und Higher-Order-Funktionen“?

Übergeben Sie Verhalten als Werte. Du übst Android 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 Android Academy zu starten?

Keine Vorkenntnisse erforderlich. Android 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 4 von 4.

Wie lange dauert die Lektion „Lambdas und Higher-Order-Funktionen“?

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 Android Academy-Lektion Code schreiben und ausführen?

Ja. Jede Android 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. Listen und veränderliche Listen
  2. Maps und Sets
  3. map, filter, forEach
  4. Lambdas und Higher-Order-Funktionen
← Zurück zu Android Academy