Programmation Dart - Variables

Une variable est «un espace nommé dans la mémoire» qui stocke des valeurs. En d'autres termes, il agit comme un conteneur de valeurs dans un programme. Les noms de variables sont appelés identificateurs. Voici les règles de dénomination d'un identifiant -

  • Les identificateurs ne peuvent pas être des mots-clés.

  • Les identificateurs peuvent contenir des alphabets et des nombres.

  • Les identificateurs ne peuvent pas contenir d'espaces et de caractères spéciaux, à l'exception du trait de soulignement (_) et du signe dollar ($).

  • Les noms de variable ne peuvent pas commencer par un nombre.

Syntaxe de type

Une variable doit être déclarée avant d'être utilisée. Dart utilise le mot-clé var pour obtenir la même chose. La syntaxe pour déclarer une variable est la suivante -

var name = 'Smith';

Toutes les variables de dart stockent une référence à la valeur plutôt que de contenir la valeur. La variable appelée name contient une référence à un objet String avec une valeur de «Smith».

Supports de fléchettes type-checkingen préfixant le nom de la variable avec le type de données. La vérification de type garantit qu'une variable ne contient que des données spécifiques à un type de données. La syntaxe pour le même est donnée ci-dessous -

String name = 'Smith'; 
int num = 10;

Prenons l'exemple suivant -

void main() { 
   String name = 1; 
}

L'extrait de code ci-dessus entraînera un avertissement car la valeur attribuée à la variable ne correspond pas au type de données de la variable.

Production

Warning: A value of type 'String' cannot be assigned to a variable of type 'int'

Toutes les variables non initialisées ont une valeur initiale de null. En effet, Dart considère toutes les valeurs comme des objets. L'exemple suivant illustre la même chose -

void main() { 
   int num; 
   print(num); 
}

Production

Null

Le mot-clé dynamique

Les variables déclarées sans type statique sont implicitement déclarées comme dynamiques. Les variables peuvent également être déclarées en utilisant le mot clé dynamic à la place du mot clé var.

L'exemple suivant illustre la même chose.

void main() { 
   dynamic x = "tom"; 
   print(x);  
}

Production

tom

Final et Const

le final et constLes mots clés sont utilisés pour déclarer des constantes. Dart empêche de modifier les valeurs d'une variable déclarée à l'aide du mot-clé final ou const. Ces mots-clés peuvent être utilisés conjointement avec le type de données de la variable ou à la place duvar mot-clé.

le constLe mot clé est utilisé pour représenter une constante de compilation. Variables déclarées à l'aide duconst Les mots clés sont implicitement définitifs.

Syntaxe: mot-clé final

final variable_name

OU

final data_type  variable_name

Syntaxe: const Keyword

const variable_name

OU

const data_type variable_name

Exemple - mot-clé final

void main() { 
   final val1 = 12; 
   print(val1); 
}

Production

12

Exemple - mot-clé const

void main() { 
   const pi = 3.14; 
   const area = pi*12*12; 
   print("The output is ${area}"); 
}

L'exemple ci-dessus déclare deux constantes, pi et area, en utilisant le constmot-clé. learea la valeur de la variable est une constante de compilation.

Production

The output is 452.15999999999997

Note - Seulement constLes variables peuvent être utilisées pour calculer une constante de temps de compilation. Les constantes au moment de la compilation sont des constantes dont les valeurs seront déterminées au moment de la compilation

Exemple

Dart lève une exception si une tentative est faite pour modifier les variables déclarées avec le finalou mot-clé const. L'exemple ci-dessous illustre la même chose -

void main() { 
   final v1 = 12; 
   const v2 = 13; 
   v2 = 12; 
}

Le code donné ci-dessus lancera l'erreur suivante comme output -

Unhandled exception: 
cannot assign to final variable 'v2='.  
NoSuchMethodError: cannot assign to final variable 'v2=' 
#0  NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:178) 
#1      main (file: Test.dart:5:3) 
#2    _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261) 
#3    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)