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 nietnullis.??(Null-coalescing operator): Gebruik een alternatief als de variabelenullis.??=(Null-coalescing assignment): Ken een waarde toe als de variabelenullis.
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.