devstory

Variables dans Dart

  1. Qu'est-ce qu'une variable ?
  2. Déclarer la variable avec le mot-clef var
  3. Déclarer la variable avec le mot-clef dynamic
  4. Déclarer la variable avec le type de data spécifique
  5. Déclarer la variable avec le mot-clef final
  6. Déclarer la variable avec le mot-clef const

1. Qu'est-ce qu'une variable ?

Dans le langage de programmation Dart, une variable est un nom (un identifiant) qui pointe vers une adresse où les données sont stockées en mémoire.
Par exemple :
var myVariable1 = 100;
  • var est un mot-clef utilisé pour déclarer une variable.
  • myVariable1 est le nom de la variable.
  • 100 est la valeur de cette variable.
Ci-dessous des règles de nomination de variables :
  • Le mot-clef ne peut pas être utilisé pour nommer une variable. Par exemple, "var" est un mot-clef, qui ne peut pas être utilisé pour nommer des variables.
  • Le nom de la variable se compose de lettres de l'alphabet latin et de chiffres.
  • Le nom de la variable ne peut pas contenir d'espaces ou de caractères spéciaux, à l'exception du trait de soulignement ( _ ) ou du signe dollar ( $ ).
  • Les noms de variables ne peuvent pas commencer par un chiffre.

2. Déclarer la variable avec le mot-clef var

La déclaration des variables est obligatoire avant l'utilisation. Pour chaque nom, vous ne devez le déclarer qu'une seule fois.
La façon la plus simple de déclarer une variable est d'utiliser le mot-clef var :
var myVariable1 = "My Text"; // Declare a variable and assign a value to it.

var myVariable2; // Declare a variable but have not assigned a value.
Vous pouvez affecter une nouvelle valeur à la variable, ce qui signifie que la variable a pointé vers une nouvelle adresse de stockage de données en mémoire.
myVariable1 = "New My Text";
Par exemple :
Variable_var_ex1.dart
void main() {
  var myVariable1 = "My Text";
  print(myVariable1);

  myVariable1 = "New My Text";  
  print(myVariable1);
}
Output:
My Text
New My Text
Lorsque vous utilisez le mot-clef "var" pour déclarer une variable, vous demandez à Dart : "Détectez le type de données de la variable". Le type de données de la variable sera déterminé dès la première fois qu'elle se verra attribuer une valeur. Si vous déclarez une variable mais ne lui attribuez jamais de valeur, son type de données est Null.
Variable_var_ex2.dart
void main() {
  var myVariable1 = "My Text"; // Data type: String
  print("data type of myVariable1: " + myVariable1.runtimeType.toString());

  var myVariable2 = 1000; // Data type: int
  print("data type of myVariable2: " + myVariable2.runtimeType.toString());

  var myVariable3; // Data type: Null
  print("data type of myVariable3: " + myVariable3.runtimeType.toString());

  myVariable3 = true; // Data type: bool
  print("data type of myVariable3: " + myVariable3.runtimeType.toString());
}
Output:
data type of myVariable1: String
data type of myVariable2: int
data type of myVariable3: Null
data type of myVariable3: bool
  • Dart Data Types
Une variable est déclarée avec le mot-clef var et le type de données est détecté comme non-Null. Vous ne pouvez pas lui affecter une valeur avec un type de données différent.
Par exemple : Une variable a été déterminée par Dart et son type de données est String. Le compilateur signalera une erreur si vous lui attribuez une valeur numérique.
void main() {
  var myVariable1 = "My Text"; // Data type: String
  print("data type of myVariable1: " + myVariable1.runtimeType.toString());
 
  // Can not assign to it an integer value.
  myVariable1 = 1000; // Error at compile time.
}
Le message d'erreur du compilateur :
Error compiling to JavaScript:
Warning: Interpreting this as package URI, 'package:dartpad_sample/main.dart'.
lib/main.dart:6:17:
Error: A value of type 'int' can't be assigned to a variable of type 'String'.
  myVariable1 = 1000; // Error at compile time.
                ^
Error: Compilation failed.

3. Déclarer la variable avec le mot-clef dynamic

Le mot-clef dynamic est également utilisé pour déclarer une variable, ce qui est assez similaire au mot-clef var. La différence est que le type de données de cette variable peut être modifié.
dynamic v1 = 123;   // v1 is of type int.
v1 = 456;           // changing value of v1 from 123 to 456.
v1 = 'abc';         // changing type of v1 from int to String.

var v2 = 123;       // v2 is of type int.
v2 = 456;           // changing value of v2 from 123 to 456.
v2 = 'abc';         // ERROR: can't change type of v2 from int to String.

4. Déclarer la variable avec le type de data spécifique

Vous pouvez déclarer une variable avec un type de données spécifique au lieu de demander à Dart de détecter automatiquement son type de données.
String myVariable1 = "My Text";

int myVariable2 = 1000;
La spécification d'un type de données spécifique pour la variable au moment de la déclaration aidera à réduire les erreurs dans le processus de codage.
Par exemple : Vous déclarez une variable de type String mais lui attribuez une valeur numérique, le compilateur vous renverra une erreur.
String myVariable1  = 1000; // Error at compile time.
  • Dart Data Types

5. Déclarer la variable avec le mot-clef final

Le mot-clef final est également utilisé pour déclarer une variable, et vous ne pouvez affecter une valeur à cette variable qu'une seule fois. Le type de données de cette variable sera déterminé par Dart lors de la première affectation.
void main() {
  final myVariable1; // Declare a variable.

  myVariable1 = 2; // Assign a value to it.

  myVariable1 = 3; // ERROR at compile time.

  final myVariable2 = "Some Text"; // Declare and assign value to variable.

  myVariable2 = "New Text"; // ERROR at compile time.
}
L'utilisation du mot-clef final vous permet d'éviter d'affecter accidentellement une nouvelle valeur à une variable alors qu'elle dispose déjà d'une valeur. Cela garantit que la variable ne pointe que vers une seule adresse en mémoire pendant son existence.
Une variable est déclarée avec le mot-clef final. Les données de la zone mémoire vers laquelle pointe cette variable peuvent toujours changer en interne.
Par exemple : La valeur d'une variable est un tableau, les éléments du tableau peuvent encore changer.
Variable_final_ex2.dart
void main() {
  final myArray = ["A", "B", "C"];
  print(myArray);
 
  myArray[2] = "E";
  print(myArray);
}
Output:
[A, B, C]
[A, B, E]
  • Dart Switch

6. Déclarer la variable avec le mot-clef const

Le mot-clef const est utilisé pour déclarer une variable spéciale, également appelée une constante. Lorsque vous déclarez une variable avec le mot-clef const, vous devez lui affecter une valeur, sinon sa valeur sera null. Lorsqu'elle est déclarée, vous ne pouvez pas affecter de valeur à cette variable. La zone de données vers laquelle pointe la variable deviendra immuable, ce qui signifie qu'elle ne peut pas modifier les données en interne.
Variable_const_ex1.dart
void main() {
  const myVariable1 = 100; // Declare and assign value to variable.

  myVariable1 = 2; // ERROR: Can not assign new value.

  const myVariable2; // Declare a variable (Its value is considered null).

  myVariable2 = "Some Text"; // ERROR: Can not assign new value.
}
Une variable est déclarée avec le mot-clef const. La zone mémoire vers laquelle il pointe devient immuable.
Par exemple : La valeur d'une variable est un tableau, ce tableau deviendra immuable. (immutable).
Variable_const_ex2.dart
void main() {
  const myArray = ["A", "B", "C"];
  print(myArray);

  myArray[2] = "E"; // ERROR: myArray is immutable.
  print(myArray);
}
Output:
[A, B, C]
: Unsupported operation: indexed setError: Unsupported operation: indexed set
  • Dart Switch