dynamic
est un type qui sous-tend tous les objets Dart. Vous ne devriez pas avoir besoin de l'utiliser explicitement dans la plupart des cas.
var
est un mot-clé, signifiant "Je ne me soucie pas de noter ce qu'est le type ici". Dart remplacera le var
avec le type d'initialisateur, ou laissez le mot clé dynamic
par défaut s'il n'y a pas d'initialisateur.
Utilice var
si vous vous attendez à ce que l'affectation d'une variable change au cours de sa durée de vie :
var msg = "Hello world.";
msg = "Hello world again.";
Utilice final
si vous souhaitez que l'affectation d'une variable reste la même pendant toute sa durée de vie :
final msg = "Hello world.";
Utilisation de final
(généreusement) vous aidera à repérer les situations où vous modifiez accidentellement l'affectation d'une variable alors que vous ne le vouliez pas.
Notez qu'il existe une distinction fine entre final
y const
quand il s'agit d'objets. final
ne rend pas nécessairement l'objet lui-même immuable, alors que const
fait :
// can add/remove from this list, but cannot assign a new list to fruit.
final fruit = ["apple", "pear", "orange"];
fruit.add("grape");
// cannot mutate the list or assign a new list to cars.
final cars = const ["Honda", "Toyota", "Ford"];
// const requires a constant assignment, whereas final will accept both:
const names = const ["John", "Jane", "Jack"];