Extension Types für Wrapper ohne Laufzeitkosten
Einen Typ ohne Laufzeit-Overhead umschließen
Extension Types für Wrapper ohne Laufzeitkosten ist eine kostenlose Dart 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 Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Ein anderes Werkzeug
Ein Extension-Typ ist eine neuere Funktion: Er legt eine neue Schnittstelle über einen bestehenden Typ, ohne Laufzeitkosten zu verursachen.
Wrappen ohne Boxing
Im Gegensatz zu einer echten Wrapper-Klasse erzeugt ein Extension-Typ zur Laufzeit kein zusätzliches Objekt. Zur Laufzeit ist er einfach der zugrunde liegende Wert.
extension type UserId(int id) {}Der Repräsentationstyp
Der Wert in Klammern ist der Repräsentationstyp. Hier ist ein UserId im Grunde nur ein int mit einem sichereren Namen.
extension type Meters(double value) {}Einfach erstellen
Sie erzeugen einen Extension-Typ wie durch den Aufruf eines Konstruktors, indem Sie den zugrunde liegenden Wert direkt übergeben.
var id = UserId(42);
var d = Meters(3.5);Sichere Methoden hinzufügen
Innerhalb des Körpers können Sie Methoden und Getter hinzufügen, die mit dem umschlossenen Wert arbeiten und ihm eine konkrete Bedeutung geben.
extension type Meters(double value) {
Meters plus(Meters o) => Meters(value + o.value);
}Stärker als typedef
Ein typedef ist nur ein Alias, ein Extension-Typ dagegen ein eigenständiger Typ. Sie können UserId nicht versehentlich mit einem einfachen int vermischen.
int raw = 42;
// UserId u = raw; // error: not interchangeableDie zugrunde liegende API ausblenden
Standardmäßig verbirgt ein Extension-Typ die Member des umschlossenen Typs, sodass nur die von Ihnen bereitgestellten Methoden aufgerufen werden können.
var m = Meters(2.0);
// m.toStringAsFixed(2); // not available unless exposedOder mit implements zugänglich machen
Fügen Sie implements hinzu, um die Member des zugrunde liegenden Typs weiterzureichen. So können Aufrufer sowohl Ihre API als auch den Basistyp verwenden.
extension type Score(int value) implements int {}
print(Score(9) + 1); // 10Kein Laufzeit-Overhead
Da kein echtes Objekt erstellt wird, verursachen Extension-Typen zur Laufzeit keinen Aufwand. Typsicherheit erhalten Sie ohne zusätzliche Kosten.
Ideal für Domänen-IDs
Sie eignen sich besonders für typisierte Bezeichner wie UserId oder Email und verhindern, dass Sie das falsche int an die falsche Stelle übergeben.
void load(UserId id) {}
load(UserId(7)); // load(7) would not compileExtensions und Extension-Typen
Eine Extension fügt einem Typ, den alle gemeinsam verwenden, Methoden hinzu. Ein Extension-Typ erzeugt dagegen einen neuen, eigenständigen Typ um einen Wert.
Kurze Überprüfung
Letzte Überprüfung: Was macht Extension-Typen so besonders?
Zusammenfassung: Extension-Typen
Sie haben Extension-Typen kennengelernt: eigenständige, kostenfreie Wrapper um einen Repräsentationstyp – ideal für sichere IDs und Einheiten ohne Laufzeit-Overhead. 🏁
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 „Extension Types für Wrapper ohne Laufzeitkosten“ kostenlos?
Ja — der vollständige Text von „Extension Types für Wrapper ohne Laufzeitkosten“ 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 „Extension Types für Wrapper ohne Laufzeitkosten“?
Einen Typ ohne Laufzeit-Overhead umschließen 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 4 von 4.
Wie lange dauert die Lektion „Extension Types für Wrapper ohne Laufzeitkosten“?
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