0Pricing
Dart Academy · Lektion

sealed-Klassen und vollständige switch-Anweisungen

Schließen Sie eine Hierarchie ab, die der Compiler prüfen kann

sealed-Klassen und vollständige switch-Anweisungen 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.

Eine abgeschlossene Familie

Eine sealed-Klasse definiert eine feste Menge von Untertypen. Kein Code außerhalb ihrer Datei kann einen neuen hinzufügen, sodass die gesamte Familie bekannt ist.

sealed class Shape {}

Untertypen deklarieren

Unterklassen eines sealed-Typs befinden sich in derselben Datei. Zusammen bilden sie jede mögliche Variante, die der Compiler berücksichtigen muss.

class Circle extends Shape {}
class Square extends Shape {}

Nicht direkt instanziierbar

Eine sealed-Klasse ist implizit abstrakt, daher erstellen Sie niemals direkt eine Instanz davon. Sie erstellen immer nur einen ihrer bekannten Untertypen.

var s = Shape(); // error
var s = Circle(); // ok

Warum sealed hilfreich ist

Da die Untertypen vollständig sind, kennt Dart die komplette Liste. Dadurch kann switch überprüfen, ob Sie jeden einzelnen Fall behandelt haben.

Über Untertypen schalten

Ein switch über einen sealed-Wert kann jeden Untertyp per Pattern abgleichen. Jeder Zweig sieht den genauen Typ, auf den er passt.

switch (shape) {
  case Circle(): print('round');
  case Square(): print('boxy');
}

Vollständigkeit wird geprüft

Wenn Sie einen Untertyp vergessen, meldet der Compiler einen Fehler. In einem sealed-switch kann niemals unbemerkt ein Fall fehlen.

Kein default erforderlich

Da jeder Fall abgedeckt ist, benötigen Sie keinen default-Zweig. Ein solcher würde lediglich künftig fehlende Fälle verbergen.

switch als Ausdruck

Verwenden Sie switch als Ausdruck, um direkt einen Wert zu berechnen. Die Vollständigkeitsprüfung gilt weiterhin, daher liefert jeder Zweig einen Wert zurück.

final name = switch (shape) {
  Circle() => 'circle',
  Square() => 'square',
};

Eine neue Variante hinzufügen

Fügen Sie später einen neuen Untertyp hinzu, werden alle switch-Anweisungen, in denen er fehlt, rot markiert. Der Compiler zeigt Ihnen, wo Sie Anpassungen vornehmen müssen.

class Triangle extends Shape {}
// existing switches now error

sealed und abstract im Vergleich

Eine abstract-Klasse erlaubt unbekannte Untertypen außerhalb der Bibliothek, daher können switch-Anweisungen nicht vollständig sein. sealed schließt die Menge für eine vollständige Prüfung ab.

Ideal für Zustände

Sealed-Typen eignen sich besonders gut, um App-Zustände wie Loading, Success und Error zu modellieren. Dadurch ist garantiert, dass für jeden Zustand ein UI-Zweig vorhanden ist. ✅

sealed class Result {}
class Loading extends Result {}
class Done extends Result {}

Kurzer Check

Kurzer Check zur Vollständigkeit von sealed.

Zusammenfassung

Sie haben gesehen, dass sealed-Klassen eine Typfamilie abschließen und jeden switch vollständig machen, sodass fehlende Fälle zu Compile-Fehlern werden. 🎯

Häufig gestellte Fragen

Ist die Lektion „sealed-Klassen und vollständige switch-Anweisungen“ kostenlos?

Ja — der vollständige Text von „sealed-Klassen und vollständige switch-Anweisungen“ 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 „sealed-Klassen und vollständige switch-Anweisungen“?

Schließen Sie eine Hierarchie ab, die der Compiler prüfen kann 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 „sealed-Klassen und vollständige switch-Anweisungen“?

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. Final-Felder und tiefe Unveränderlichkeit
  2. sealed-Klassen und vollständige switch-Anweisungen
  3. base-, interface- und final-Modifikatoren
  4. copyWith und Wertgleichheit
← Zurück zu Dart Academy