Menu
Coddy logo textTech

Operador null-aware

Parte de la sección Fundamentos del Journey de Dart de Coddy — lección 28 de 94.

El operador null-aware (??) devuelve la expresión de la izquierda si no es nula, de lo contrario devuelve la expresión de la derecha.

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;  // Sin valor inicial, por defecto null
  int displayScore = score ?? 0;
  
  print('Your score: $displayScore');
  
  // Más adelante en el programa, score obtiene un valor
  score = 100;
  displayScore = score ?? 0;
  
  print('Your updated score: $displayScore');
}
challenge icon

Desafío

Fácil

Crea un programa que demuestre el operador null-aware (??) en Dart:

  1. Declara una variable String nullable nombrada username y asígnala a null
  2. Declara una variable int nullable nombrada userAge y asígnala a null
  3. Usa el operador null-aware para asignar un valor predeterminado de "Guest" a una nueva variable displayName si username es null
  4. Usa el operador null-aware para asignar un valor predeterminado de 18 a una nueva variable displayAge si userAge es null
  5. Imprime los valores con el EXACTO siguiente formato:
Username: Guest (default value used)
Age: 18 (default value used)

Luego:

  1. Actualiza username a "DartUser"
  2. Actualiza userAge a 25
  3. Repite los pasos 3 y 4 con los valores actualizados
  4. Imprime los valores con el EXACTO siguiente formato:
Username: DartUser (original value used)
Age: 25 (original value used)

Pruébalo tú mismo

void main() {
  // Declarar variables que pueden ser nulas
  String? username = _;
  int? userAge = _;
  
  // Usar el operador de coalescencia nula para valores por defecto
  String displayName = username ?? _;
  int displayAge = userAge ?? _;
  
  // Imprimir valores iniciales
  print("Username: $displayName (default value used)");
  print("Age: $displayAge (default value used)");
  
  // Actualizar variables
  username = _;
  userAge = _;
  
  // Usar el operador de coalescencia nula nuevamente
  displayName = username _ "Guest";
  displayAge = userAge _ 18;
  
  // Imprimir valores actualizados
  print("Username: $displayName (original value used)");
  print("Age: $displayAge (original value used)");
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos