Statische Extension-Member und Konflikte
Namenskonflikte lösen und statische Hilfsfunktionen hinzufügen
Statische Extension-Member und Konflikte ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.
Zwei Hilfsmethoden, derselbe Name
Wenn Sie zwei Extensions importieren, die beide eine Methode namens parse zu String hinzufügen, weiß Dart nicht mehr, welche Sie meinen.
Warum Konflikte entstehen
Extension-Member gehören nicht zum Typ selbst. Zwei Methoden mit demselben Namen sind daher eine Mehrdeutigkeit, bei der der Compiler nicht einfach raten darf.
Den Fehler erkennen
In diesem Fall meldet Dart eine mehrdeutige Extension und bricht ab, statt stillschweigend eine davon für Sie auszuwählen.
"7".parse(); // error: ambiguous between two extensionsEine beim Import ausblenden
Verwenden Sie hide im Import, um eine der kollidierenden Extensions anhand ihres Namens auszublenden. Dann kann die andere den Aufruf übernehmen.
import 'b.dart' hide NumberParsing;Oder nur eine anzeigen
Das Gegenstück ist show: Damit importieren Sie nur die aufgelisteten Namen und schließen den Rest stillschweigend aus.
import 'a.dart' show NumberParsing;Explizit aufrufen
Sie können auch eine explizite Anwendung verwenden: Nennen Sie die Extension und übergeben Sie den Wert in Klammern.
NumberParsing("7").parse();Statische Member hinzufügen
Extensions können auch statische Member enthalten. Diese gehören zum Namen der Extension und nicht zu den Werten, für die Sie Methoden aufrufen.
extension MathX on num {
static num clampLow(num x) => x < 0 ? 0 : x;
}Auf statische Member über den Namen zugreifen
Rufen Sie ein statisches Member über den Namen der Extension auf, genau wie ein statisches Member einer Klasse. Der Receiver-Wert ist daran nicht beteiligt.
print(MathX.clampLow(-3)); // 0Statische Member benötigen einen Namen
Da Sie statische Member über die Extension erreichen, kann eine unbenannte Extension sie nicht bereitstellen. Geben Sie ihr einen Namen, wenn Sie statische Member verwenden möchten.
Member und statische Member
Instanzmember verwenden this und gehören zu einem Wert. Statische Member ignorieren den Wert und gehören zur Extension selbst.
Konflikten vorbeugen
Geben Sie Extensions und ihren Membern klare, spezifische Namen. Gute Namensgebung verhindert die meisten Konflikte, bevor show oder hide überhaupt nötig werden.
Kurze Überprüfung
Ein Konflikt, eine saubere Lösung. Welche funktioniert?
Zusammenfassung: Statische Member und Konflikte
Sie können kollidierende Extensions mit show, hide oder expliziten Aufrufen auflösen und statische Member hinzufügen, die über den Namen der Extension erreichbar sind. 🧩
Lerne Dart mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Statische Extension-Member und Konflikte“ kostenlos?
Ja — der vollständige Text von „Statische Extension-Member und Konflikte“ 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 „Statische Extension-Member und Konflikte“?
Namenskonflikte lösen und statische Hilfsfunktionen hinzufügen 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 3 von 4.
Wie lange dauert die Lektion „Statische Extension-Member und Konflikte“?
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
- Ihre erste Extension schreiben
- Extensions für Generics
- Statische Extension-Member und Konflikte
- Extension Types für Wrapper ohne Laufzeitkosten