Sobes.tech
Junior

Wat is het verschil tussen var en dynamic in Dart?

sobes.tech AI

Antwoord van AI

var definieert een variabele waarvan het type automatisch wordt vastgesteld op basis van de toegewezen waarde en vast blijft. dynamic definieert een variabele waarvan het type tijdens de uitvoering van het programma kan veranderen.

Eigenschap var dynamic
Type binding Tijdens compilatie (statisch) Tijdens uitvoering (dynamisch)
Type verandering Niet mogelijk na initialisatie Mogelijk op elk moment
Type controle Uitgevoerd tijdens compilatie Uitgevoerd tijdens uitvoering
Prestaties Optimaal Kan iets lager zijn door runtime controle

Voorbeeld van gebruik van var:

// Het type x is gedefinieerd als int tijdens compilatie
var x = 10;
// De volgende regel veroorzaakt een compilatiefout,
// omdat het type x al als int is gedefinieerd
// x = "hallo";

Voorbeeld van gebruik van dynamic:

// Het type y kan tijdens uitvoering veranderen
dynamic y = 10;
// y is nu van type String
y = "hallo";
// y is nu van type bool
y = true;

Gebruik van var wordt aanbevolen wanneer het type van de variabele vooraf bekend is, omdat dit typeveiligheid en betere prestaties garandeert. dynamic moet alleen worden gebruikt in gevallen waarin het type echt niet bekend is tot runtime (bijvoorbeeld bij werken met JSON of reflectie), maar dit kan leiden tot runtime-fouten als operaties worden uitgevoerd op een waarde van een incompatibel type.