Funktionen höherer Ordnung und Currying
Übergeben Sie Funktionen, geben Sie sie zurück und wenden Sie sie teilweise an
Funktionen höherer Ordnung und Currying ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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 Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Funktionen sind Werte
In Dart ist eine Funktion einfach ein Wert, den Sie in einer Variable speichern können. Diese eine Idee eröffnet die ganze Welt der funktionalen Muster. 🎯
int square(int x) => x * x;
var op = square;
print(op(4)); // 16Was höherer Ordnung bedeutet
Eine Funktion höherer Ordnung übernimmt eine Funktion als Argument oder gibt eine Funktion zurück. Sie haben solche Funktionen bereits mit Listenmethoden verwendet.
Eine Funktion übergeben
Wenn Sie Verhalten als Argument übergeben, entscheidet der Aufrufer, was geschieht. Hier führt apply die empfangene Funktion aus.
int apply(int v, int Function(int) f) => f(v);
print(apply(5, (x) => x + 1)); // 6Syntax von Funktionstypen
Der Typ int Function(int) bedeutet: eine Funktion, die ein int übernimmt und ein int zurückgibt. Typen machen Ihre Absicht eindeutig.
void run(String Function(String) format) {
print(format('hi'));
}Eine Funktion zurückgeben
Eine Funktion höherer Ordnung kann auch eine Funktion zurückgeben. Die zurückgegebene Funktion merkt sich die Werte aus ihrer Umgebung zum Zeitpunkt ihrer Erstellung.
Function makeAdder(int n) {
return (int x) => x + n;
}Die zurückgegebene Funktion verwenden
Rufen Sie die Erzeugungsfunktion einmal auf, um eine spezialisierte Funktion zu erstellen, und verwenden Sie diese anschließend wieder. Jedes Ergebnis ist ein eigenes kleines konfiguriertes Werkzeug.
var add10 = makeAdder(10);
print(add10(5)); // 15
print(add10(1)); // 11Currying kennenlernen
Currying wandelt eine Funktion mit mehreren Argumenten in eine Kette von Funktionen mit jeweils einem Argument um. Sie übergeben jeweils einen Wert.
int Function(int) add(int a) => (int b) => a + b;
print(add(3)(4)); // 7Partielle Anwendung
Belegen Sie das erste Argument jetzt und die übrigen später. Das nennt man partielle Anwendung; dadurch entstehen wiederverwendbare, vorgeladene Hilfsfunktionen.
var add3 = add(3);
print(add3(10)); // 13
print(add3(20)); // 23Warum überhaupt Currying
Mit Currying können Sie aus allgemeinen Funktionen spezialisierte Funktionen erstellen, ohne die Logik neu zu schreiben. Besonders nützlich ist das beim Zusammensetzen kleiner Verarbeitungspipelines.
Typ für Funktionen als Parameter
Mit einem typedef können Sie komplexe Funktionstypen benennen und so Signaturen in Ihrem gesamten Code übersichtlich halten.
typedef IntOp = int Function(int);
int apply(int v, IntOp f) => f(v);Die Tear-off-Abkürzung
Statt eine Methode in eine Lambda-Funktion zu verpacken, übergeben Sie direkt ihren Namen. Dieses Tear-off hält Aufrufe sauber und übersichtlich.
['1', '2', '3'].map(int.parse).forEach(print);Schnelltest
Überprüfen wir Ihr Verständnis von Funktionen höherer Ordnung.
Zusammenfassung
Funktionen sind Werte, daher können Sie sie übergeben und zurückgeben. Currying und partielle Anwendung verwandeln allgemeine Funktionen in spezialisierte Werkzeuge. Gute Arbeit! 🚀
Häufig gestellte Fragen
Ist die Lektion „Funktionen höherer Ordnung und Currying“ kostenlos?
Ja — der vollständige Text von „Funktionen höherer Ordnung und Currying“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Funktionen höherer Ordnung und Currying“?
Übergeben Sie Funktionen, geben Sie sie zurück und wenden Sie sie teilweise an Du übst Dart 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 Dart Academy zu starten?
Keine Vorkenntnisse erforderlich. Dart 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 1 von 4.
Wie lange dauert die Lektion „Funktionen höherer Ordnung und Currying“?
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 Dart Academy-Lektion Code schreiben und ausführen?
Ja. Jede Dart 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
- Funktionen höherer Ordnung und Currying
- fold, reduce und expand
- Faule Iterables und Generatoren mit sync*
- Zusammensetzen reiner Funktionspipelines