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 consciente de null (??) devuelve la expresión izquierda si no es null; de lo contrario, devuelve la expresión 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 consciente de nulos (??) en Dart:

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

Después:

  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 siguiente formato EXACTO:
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

Practica por tu cuenta: Compilador de Dart online