Dart Academy · Lektion

Extension Types für Wrapper ohne Laufzeitkosten

Einen Typ ohne Laufzeit-Overhead umschließen

Lektion 4 von 413 Schritte

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 interchangeable

Die 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 exposed

Oder 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); // 10

Kein 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 compile

Extensions 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. 🏁

Kostenlos starten

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

  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