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)

Hoja de referencia

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

String? name = null;
String displayName = name ?? 'Guest';  // Returns 'Guest' since name is null

int? score = 100;
int displayScore = score ?? 0;  // Returns 100 since score is not null

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