0Pricing
Dart Academy · Lektion

Extensions für Generics

List, Iterable und Typparameter erweitern

Extensions für Generics ist eine kostenlose Dart 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 Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.

Collections erweitern

Der eigentliche Vorteil zeigt sich, wenn Sie generische Typen wie List oder Iterable erweitern. Eine Extension kann so jeden Elementtyp gleichzeitig unterstützen.

Einen Typparameter deklarieren

Setzen Sie nach dem Namen der Extension einen Typparameter und verwenden Sie ihn anschließend in der on-Klausel. Damit bleibt Ihre Hilfsmethode vollständig typsicher.

extension Firsts<T> on List<T> {
  T? get firstOrNull => isEmpty ? null : this[0];
}

Der Elementtyp wird automatisch übernommen

Weil Sie List of T geschrieben haben, gibt Ihre Methode automatisch den richtigen Elementtyp zurück. Keine Umwandlungen, keine Überraschungen durch dynamische Typen.

List<int> nums = [1, 2, 3];
int? n = nums.firstOrNull; // typed as int?

Iterable für größere Reichweite erweitern

Wenn Sie statt List Iterable erweitern, funktioniert Ihre Hilfsmethode gleichermaßen mit Listen, Mengen und verzögert ausgewerteten Iterables. Größere Reichweite, derselbe Code.

extension Counts<T> on Iterable<T> {
  int countWhere(bool Function(T) f) => where(f).length;
}

Generische Methoden im Inneren

Eine Extension-Methode kann auch eigene generische Parameter annehmen, unabhängig vom Typ, den Sie erweitern.

extension Mapping<T> on List<T> {
  List<R> mapTo<R>(R Function(T) f) => map(f).toList();
}

Typinferenz hilft Ihnen

Dart leitet die Typargumente normalerweise aus dem Wert ab, für den Sie den Aufruf durchführen. Dadurch bleiben Ihre Aufrufstellen kurz und übersichtlich.

var first = ["a", "b"].firstOrNull; // String?

Map mit zwei Typen erweitern

Maps benötigen zwei Parameter. Schreiben Sie Map of K, V, und Sie können Hilfsmethoden erstellen, die sowohl Schlüssel als auch Werte berücksichtigen.

extension MapPick<K, V> on Map<K, V> {
  V? pick(K key) => this[key];
}

Nullsicherheit einhalten

Die Rückgabe von T? statt T signalisiert, dass ein Wert fehlen kann, und sorgt dafür, dass Aufrufer die Nullsicherheit korrekt berücksichtigen.

extension SafeLast<T> on List<T> {
  T? get lastOrNull => isEmpty ? null : last;
}

Über Elementtypen hinweg wiederverwenden

Eine generische Extension funktioniert für jeden Elementtyp. Dasselbe firstOrNull funktioniert mit Zahlen, Zeichenketten und Ihren eigenen Klassen.

var who = <User>[].firstOrNull; // User?

Bei Bedarf einschränken

Wenn Ihre Hilfsmethode bestimmte Fähigkeiten benötigt, fügen Sie mit extends eine Typgrenze hinzu, sodass nur geeignete Elementtypen zulässig sind.

extension Sums<T extends num> on List<T> {
  num total() => fold(0, (a, b) => a + b);
}

Warum generische Extensions überzeugen

Sie verbinden Wiederverwendbarkeit mit Sicherheit: Sie schreiben eine Hilfsmethode einmal, und sie passt sich an jeden Elementtyp an, während sie den korrekten Rückgabetyp beibehält.

Kurze Überprüfung

Überprüfen wir kurz, wie Extensions typsicher bleiben.

Zusammenfassung: Generische Extensions

Sie können einer Extension einen Typparameter hinzufügen, List, Iterable oder Map als Zieltyp verwenden und den Typ mit extends sogar einschränken, damit die Extension wiederverwendbar und sicher bleibt. ✅

Häufig gestellte Fragen

Ist die Lektion „Extensions für Generics“ kostenlos?

Ja — der vollständige Text von „Extensions für Generics“ 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 „Extensions für Generics“?

List, Iterable und Typparameter erweitern 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 2 von 4.

Wie lange dauert die Lektion „Extensions für Generics“?

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

  1. Ihre erste Extension schreiben
  2. Extensions für Generics
  3. Statische Extension-Member und Konflikte
  4. Extension Types für Wrapper ohne Laufzeitkosten
← Zurück zu Dart Academy