Skip to main content

null

Het keyword null in Dart vertegenwoordigt de afwezigheid van een waarde of een niet-geïnitialiseerde variabele. Het is een belangrijk concept om te begrijpen, vooral in de context van Null Safety.

Wat is null?

In Dart betekent null dat een variabele geen waarde heeft of nog niet is geïnitialiseerd. Dit kan leiden tot fouten als je probeert methoden aan te roepen of eigenschappen te benaderen van een null object. Met de introductie van Null Safety in Dart 2.12, kun je expliciet aangeven of een variabele null kan zijn of niet.

Basisgebruik van null

Een variabele kan expliciet worden ingesteld op null om aan te geven dat deze geen waarde heeft:

void main() {
  String? naam = null;
  print(naam);  // Output: null
}

In dit voorbeeld is naam een nullable string en wordt ingesteld op null.

Null-checks

Voordat je een nullable variabele gebruikt, is het belangrijk om te controleren of deze null is. Dit voorkomt null-gerelateerde fouten.

Voorbeeld:

void main() {
  String? bericht;

  if (bericht != null) {
    print(bericht.length);  // Dit wordt niet uitgevoerd omdat bericht null is
  } else {
    print('Bericht is null');
  }
}

In dit voorbeeld controleren we of bericht niet null is voordat we proberen de lengte ervan af te drukken.

Null-aware operators

Dart biedt een aantal null-aware operators om het werken met nullable variabelen te vereenvoudigen:

  • ?. (Null-aware access): Roep een methode of eigenschap aan alleen als de variabele niet null is.
  • ?? (Null-coalescing operator): Gebruik een alternatief als de variabele null is.
  • ??= (Null-coalescing assignment): Ken een waarde toe als de variabele null is.

Voorbeelden:

void main() {
  String? naam;

  // Null-aware toegang
  print(naam?.length);  // Output: null

  // Null-coalescing operator
  String bericht = naam ?? 'Geen naam opgegeven';
  print(bericht);  // Output: Geen naam opgegeven

  // Null-coalescing toekenning
  naam ??= 'Alice';
  print(naam);  // Output: Alice
}

Het gebruik van late

Met het keyword late kun je aangeven dat een variabele later zal worden geïnitialiseerd. Dit is nuttig wanneer je zeker weet dat de variabele niet null zal zijn wanneer deze voor het eerst wordt gebruikt.

Voorbeeld:

void main() {
  late String naam;
  
  naam = 'Alice';  // Initialisatie
  print(naam);  // Output: Alice
}

In dit voorbeeld wordt de variabele naam later geïnitialiseerd met de waarde ‘Alice’.

null en default waarden

Je kunt default waarden instellen voor nullable parameters, zodat ze nooit null zijn als ze niet worden opgegeven.

Voorbeeld:

void printBericht({String? bericht = 'Hallo, wereld!'}) {
  print(bericht);
}

void main() {
  printBericht();  // Output: Hallo, wereld!
  printBericht(bericht: 'Hallo, Dart!');  // Output: Hallo, Dart!
}

In dit voorbeeld gebruiken we een default waarde voor de parameter bericht.

Het keyword null in Dart vertegenwoordigt de afwezigheid van een waarde of een niet-geïnitialiseerde variabele. Met de introductie van Null Safety kun je expliciet aangeven of een variabele null kan zijn of niet. Dit helpt om null-gerelateerde fouten te voorkomen en maakt je code robuuster en betrouwbaarder. Door null-checks, null-aware operators, late variabelen, en default waarden te gebruiken, kun je veilig en effectief met null werken in je Dart-programma’s.