Dart Academy · Les

sealed-klassen en exhaustieve switch

Een hiërarchie afsluiten die de compiler kan controleren

Les 2 van 413 stappen

sealed-klassen en exhaustieve switch is een gratis Dart Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Dart Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Dart Academy bevat in totaal 4 lessen.

Een gesloten familie

Een sealed klasse definieert een vaste verzameling subtypen. Code buiten het bestand kan geen nieuw subtype toevoegen, dus de familie is volledig bekend.

sealed class Shape {}

Subtypen declareren

Subklassen van een sealed type staan in hetzelfde bestand. Samen vormen ze elke mogelijke variant waarmee de compiler rekening moet houden.

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

Niet rechtstreeks instantieerbaar

Een sealed klasse is impliciet abstract, dus je maakt er nooit rechtstreeks een instantie van. Je bouwt altijd een van de bekende subtypen.

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

Waarom sealed helpt

Omdat de subtypen exhaustive zijn, kent Dart de volledige lijst. Daardoor kan switch controleren of je elk geval hebt afgehandeld.

Switchen over subtypen

Een switch op een sealed waarde kan elk subtype met een patroon herkennen. Elke tak ziet het precieze type dat is herkend.

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

Volledigheid gecontroleerd

Als je een subtype vergeet, meldt de compiler een error. Je kunt nooit ongemerkt een geval uit een sealed switch weglaten.

Geen default nodig

Omdat elk geval is afgedekt, heb je geen default-tak nodig. Als je er wel een toevoegt, verberg je alleen toekomstige ontbrekende gevallen.

switch als expressie

Gebruik switch als expressie om rechtstreeks een waarde te berekenen. De volledigheidscontrole blijft gelden, dus elke tak levert iets op.

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

Een nieuwe variant toevoegen

Voeg later een nieuw subtype toe en elke switch die het mist, wordt rood gemarkeerd. De compiler helpt je om elke switch bij te werken.

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

sealed versus abstract

Een abstract klasse staat onbekende subtypen buiten de klasse toe, dus switches kunnen niet volledig zijn. Sealed sluit de verzameling en maakt volledige controle mogelijk.

Uitstekend voor statussen

Sealed types zijn ideaal voor het modelleren van app-states zoals Loading, Success en Error. Zo is gegarandeerd dat voor elke UI-tak een implementatie bestaat. ✅

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

Korte controle

Korte controle over de volledigheid van sealed.

Samenvatting

Je hebt gezien dat sealed klassen een typefamilie sluiten en elke switch volledig maken, zodat ontbrekende gevallen compilatiefouten worden. 🎯

Gratis beginnen

Leer Dart met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “sealed-klassen en exhaustieve switch” gratis?

Ja — de volledige tekst van “sealed-klassen en exhaustieve switch” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Dart Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Dart Academy bevat in totaal 4 lessen.

Wat leer ik in “sealed-klassen en exhaustieve switch”?

Een hiërarchie afsluiten die de compiler kan controleren Je oefent met Dart Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Dart Academy te beginnen?

Ervaring vooraf is niet nodig. Dart Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “sealed-klassen en exhaustieve switch”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Dart Academy?

Ja. Elke les over Dart Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Final-velden en diepe onveranderlijkheid
  2. sealed-klassen en exhaustieve switch
  3. base-, interface- en final-modifiers
  4. copyWith en waardegelijkheid
← Terug naar Dart Academy