Dart Academy · Les

Final-velden en diepe onveranderlijkheid

Objecten bouwen die nooit veranderen

Les 1 van 413 stappen

Final-velden en diepe onveranderlijkheid is een gratis Dart Academy-les op CoddyKit. Dit is les 1 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.

Onveranderlijk ontworpen

Een immutable object verandert nooit nadat het is opgebouwd. Daardoor zijn je gegevens voorspelbaar en veilig te delen in je hele app. 🔒

Maak kennis met final

Een veld met final wordt één keer ingesteld tijdens het opbouwen en kan daarna nooit opnieuw worden toegewezen. Zo blijft de waarde gedurende de hele levensduur van het object vaststaan.

class Point {
  final int x;
  Point(this.x);
}

Opnieuw toewijzen is een fout

Probeer een nieuwe waarde toe te wijzen aan een veld met final en de compiler houdt je tegen. De fout wordt ontdekt voordat je programma ooit wordt uitgevoerd.

final p = Point(3);
p.x = 9; // compile error

final versus const

Gebruik const wanneer de waarde tijdens het compileren bekend is, en final wanneer de waarde tijdens runtime wordt berekend. Beide verbieden latere toewijzing.

const pi = 3.14;
final now = DateTime.now();

const-constructors

Geef een klasse een const constructor en Dart kan echt onveranderlijke instanties bouwen. Al zijn velden moeten zelf final zijn.

class Color {
  final int rgb;
  const Color(this.rgb);
}

Gedeelde const-instanties

Twee identieke const-objecten zijn in het geheugen precies dezelfde instantie. Dart hergebruikt ze, wat zowel ruimte als tijd bespaart.

const a = Color(0);
const b = Color(0);
print(identical(a, b)); // true

Oppervlakkig versus diep

Een final-veld voorkomt opnieuw toewijzen, maar bevriest niet datgene waarnaar het verwijst. Aan een final List kunnen nog steeds items worden toegevoegd.

final nums = [1, 2];
nums.add(3); // allowed!

Het doel van diepe onveranderlijkheid

Deep immutability betekent dat niets wat vanuit het object bereikbaar is, kan veranderen. Je hebt meer nodig dan final om dat volledig te bereiken.

Collecties bevriezen

Pak een lijst in met List.unmodifiable, zodat elke poging om iets toe te voegen of te verwijderen een fout veroorzaakt. Nu blijft de hele structuur bevroren.

final tags = List.unmodifiable([1, 2]);
tags.add(3); // throws at runtime

const-verzamelingsliteralen

Voeg const toe aan het begin van een literal om een diep onveranderlijke verzameling voor compileertijd te krijgen. Je kunt die helemaal niet aanpassen.

const days = ['Mon', 'Tue'];
// days.add(...) is forbidden

Waarom dit belangrijk is

Onveranderlijke gegevens zijn thread-safe, eenvoudig te cachen en geschikt voor state management in Flutter. Bugs door stiekeme mutaties verdwijnen gewoon.

Korte controle

Nog één laatste controle over final en onveranderlijkheid.

Samenvatting

Je hebt geleerd dat final een veld vergrendelt, const waarden tijdens het compileren vergrendelt en dat je voor diepe onveranderlijkheid onveranderlijke of const-collecties nodig hebt. 🎉

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 “Final-velden en diepe onveranderlijkheid” gratis?

Ja — de volledige tekst van “Final-velden en diepe onveranderlijkheid” 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 “Final-velden en diepe onveranderlijkheid”?

Objecten bouwen die nooit veranderen 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 1 van 4.

Hoe lang duurt de les “Final-velden en diepe onveranderlijkheid”?

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