Skip to main content

Var

Variabelen zijn een fundamenteel concept in elke programmeertaal. Ze fungeren als opslagplaatsen voor gegevens die door een programma kunnen worden gebruikt en gemanipuleerd. Je kunt variabelen vergelijken met doosjes waarin je verschillende soorten informatie kunt opslaan, zoals cijfers, tekst of andere soorten gegevens.

Het Declareren en Initialiseren van Variabelen

In Dart declareer en initialiseer je variabelen door het type van de variabele te specificeren, gevolgd door de naam en een optionele beginwaarde. Hier zijn enkele voorbeelden:

Variabel declaratie

Als je niet zeker weet welk type waarde een variabele zal bevatten, zal Dart automatisch het type bepalen op basis van de toegekende waarde. het keyword var is optioneel.

var naam = 'Jan'; // String
var leeftijd = 25; // int
var prijs = 19.99; // double
var isActief = true; // bool

Specifieke typen gebruiken

Je kunt ook expliciet het type van de variabele specificeren, wat helpt om je code duidelijker en beter leesbaarder te maken.

String naam = 'Jan';
int leeftijd = 25;
double prijs = 19.99;
bool isActief = true;

Constante en Finale Variabelen

In Dart kun je ook variabelen declareren die niet kunnen worden veranderd nadat ze zijn ingesteld. Dit zijn constante en finale variabelen.

final variabelen

Een final variabele kan slechts één keer worden ingesteld. Na de initiële toewijzing kan de waarde niet meer worden gewijzigd.

final String land = 'Nederland';
// land = 'België'; // Dit zou een fout veroorzaken

const variabelen

Een const variabele is een compile-time constante. Dit betekent dat de waarde al bekend moet zijn tijdens het compileren van de code. const variabelen zijn dus altijd statisch en kunnen nooit worden gewijzigd.

const double pi = 3.14159;
// pi = 3.14; // Dit zou een fout veroorzaken

Null Safety

Dart ondersteunt null safety om je te helpen null-referentie fouten te vermijden. Dit betekent dat variabelen standaard niet null kunnen zijn, tenzij je expliciet aangeeft dat ze dat mogen.

String naam = 'Jan'; // Niet null
String? optioneleNaam; // Kan null zijn

optioneleNaam = null; // Geldig
naam = null; // Ongeldig, dit veroorzaakt een fout

Belangrijke bij Null Safety:

  • Nullable types: Je kunt een ? toevoegen aan het einde van een type om aan te geven dat de variabele null kan zijn.String? naam; // Nullable type. Kan 'null' of een string zijn.
  • Niet-nullable types: Standaard zijn variabelen niet-nullable en moeten ze worden geïnitialiseerd voordat ze worden gebruikt. String naam = 'Jan'; // Non-nullable type. Moet worden geïnitialiseerd.
  • Default value: Niet-geïnitialiseerde variabelen van een nullable type krijgen automatisch de waarde null. int? lijnAantal; assert(lijnAantal == null);
  • Assert: Tijdens de ontwikkeling kan de assert functie worden gebruikt om ervoor te zorgen dat bepaalde condities waar zijn. int leeftijd = 25; assert(leeftijd >= 18); // Geen fout, want de conditie is waar
  • Late Variables: Met het late trefwoord kun je aangeven dat een variabele later wordt geïnitialiseerd, maar je verzekert Dart dat deze variabele zeker een waarde zal krijgen voordat deze wordt gebruikt. late String beschrijving; void main() { beschrijving = 'Feijoada!'; print(beschrijving); }

Late Variabelen

Met het late trefwoord kun je aangeven dat een variabele pas later wordt geïnitialiseerd, maar je verzekert Dart dat deze variabele zeker een waarde zal krijgen voordat deze wordt gebruikt. Dit is handig voor variabelen die niet onmiddellijk een waarde krijgen toegewezen.

late String naam;

void stelNaamIn() {
  naam = 'Jan';
}

void gebruikNaam() {
  print(naam); // Geldig zolang stelNaamIn() eerder is aangeroepen
}

Assert

De assert functie wordt gebruikt om tijdens het debuggen zeker te stellen dat een bepaalde conditie waar is. Als de conditie onwaar is, wordt een fout gegenereerd.

int leeftijd = 25;
assert(leeftijd >= 18); // Geen fout, want de conditie is waar

int ongeldigeLeeftijd = 17;
assert(ongeldigeLeeftijd >= 18); // Fout tijdens het debuggen, want de conditie is onwaar

Object

In Dart is Object het basistype van alle typen. Alle Dart-variabelen zijn in feite objecten, zelfs eenvoudige typen zoals int en bool.

Object mijnObject = 'Dit is een string';
print(mijnObject); // Dit is een string

mijnObject = 42;
print(mijnObject); // 42

Dynamische Variabelen

Soms weet je niet welk type waarde een variabele zal bevatten. In zulke gevallen kun je het trefwoord dynamic gebruiken, wat betekent dat de variabele van elk type kan zijn.

dynamic onbekend = 'Hallo';
print(onbekend); // String
onbekend = 123;
print(onbekend); // int

Variabele Scoping

De scope van een variabele bepaalt waar deze toegankelijk is in je code. Variabelen gedeclareerd binnen een functie of blok zijn alleen binnen dat blok toegankelijk. Globale variabelen, gedeclareerd buiten functies, zijn overal in het programma toegankelijk.

void main() {
  var globalVar = 'Ik ben globaal';

  void functie() {
    var localVar = 'Ik ben lokaal';
    print(globalVar); // Toegankelijk
    print(localVar); // Toegankelijk
  }

  functie();
  print(globalVar); // Toegankelijk
  // print(localVar); // Onbeschikbaar buiten de functie
}

Conclusie

Variabelen zijn een essentieel onderdeel van programmeren in Dart. Door te begrijpen hoe je ze declareert, initialiseert en gebruikt, kun je efficiëntere en leesbaardere code schrijven. Experimenteer met verschillende soorten variabelen en ontdek hoe je ze kunt gebruiken om gegevens in je programma te beheren. Vergeet niet de kracht van const, final, late, en dynamic te benutten en maak gebruik van null safety om veiligere code te schrijven.