Menu
Coddy logo textTech

Opérateur null-aware

Fait partie de la section Fondamentaux du Journey Dart de Coddy — leçon 28 sur 94.

L'opérateur null-aware (??) renvoie l'expression de gauche si elle n'est pas null, sinon renvoie l'expression de droite.

void main() {
  String? name = 'Dart';
  String displayName = name ?? 'Guest';
  
  print('Hello, $displayName!');
}
void main() {
  String? name = null;
  String displayName = name ?? 'Guest';
  
  print('Hello, $displayName!');
}
void main() {
  int? score;  // Pas de valeur initiale, par défaut null
  int displayScore = score ?? 0;
  
  print('Your score: $displayScore');
  
  // Plus tard dans le programme, score reçoit une valeur
  score = 100;
  displayScore = score ?? 0;
  
  print('Your updated score: $displayScore');
}
challenge icon

Défi

Facile

Créez un programme qui démontre l'opérateur null-aware (??) en Dart :

  1. Déclarez une variable String nullable nommée username et définissez-la à null
  2. Déclarez une variable int nullable nommée userAge et définissez-la à null
  3. Utilisez l'opérateur null-aware pour assigner une valeur par défaut de "Guest" à une nouvelle variable displayName si username est null
  4. Utilisez l'opérateur null-aware pour assigner une valeur par défaut de 18 à une nouvelle variable displayAge si userAge est null
  5. Affichez les valeurs avec le format EXACT suivant :
Username: Guest (default value used)
Age: 18 (default value used)

Ensuite :

  1. Mettez à jour username à "DartUser"
  2. Mettez à jour userAge à 25
  3. Répétez les étapes 3 et 4 avec les valeurs mises à jour
  4. Affichez les valeurs avec le format EXACT suivant :
Username: DartUser (original value used)
Age: 25 (original value used)

Aide-mémoire

Le opérateur de fusion null (??) renvoie l'expression de gauche si elle n'est pas null, sinon renvoie l'expression de droite.

String? name = null;
String displayName = name ?? 'Guest';  // Renvoie 'Guest' car name est null

int? score = 100;
int displayScore = score ?? 0;  // Renvoie 100 car score n'est pas null

Essayez vous-même

void main() {
  // Déclarer des variables nullables
  String? username = _;
  int? userAge = _;
  
  // Utiliser l'opérateur null-aware pour les valeurs par défaut
  String displayName = username ?? _;
  int displayAge = userAge ?? _;
  
  // Afficher les valeurs initiales
  print("Username: $displayName (default value used)");
  print("Age: $displayAge (default value used)");
  
  // Mettre à jour les variables
  username = _;
  userAge = _;
  
  // Utiliser à nouveau l'opérateur null-aware
  displayName = username _ "Guest";
  displayAge = userAge _ 18;
  
  // Afficher les valeurs mises à jour
  print("Username: $displayName (original value used)");
  print("Age: $displayAge (original value used)");
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux