Menu
Coddy logo textTech

Resumen - Manejo Seguro de Null

Parte de la sección Fundamentos del Journey de Dart de Coddy. Lección 82 de 94.

challenge icon

Desafío

Fácil

Estás creando un sistema de perfiles de usuario para una aplicación móvil. Crea una clase UserProfile que demuestre tu comprensión de las funciones de seguridad contra valores nulos de Dart.

Implementa una clase UserProfile con lo siguiente:

  1. Propiedades no anulables (siempre deben tener un valor):
    • id de tipo int
    • createdDate de tipo String
  2. Propiedades anulables (pueden ser nulas durante la inicialización):
    • name de tipo String?
    • email de tipo String?
    • age de tipo int?
  3. Propiedad inicializada de forma diferida:
    • displayName de tipo String, declarada mediante la palabra clave late
  4. Constructor:
    • Acepta id y createdDate como parámetros obligatorios
    • Inicializa displayName con "Guest"
  5. Método: <strong>void printProfile()</strong> Imprime el perfil del usuario con el siguiente formato:

    User Profile:
    ID: <id>
    Created: <createdDate>
    Name: <name or 'Not provided'>
    Email: <email or 'Not provided'>
    Age: <age or 'Not provided'>
    Display Name: <displayName>
    -------------------
  6. Método: <strong>void updateEmail(String? newEmail)</strong>
    • Actualiza la propiedad email con el nuevo valor.
  7. Método: <strong>String getDisplayName()</strong>
    • Si name no es nulo, establece displayName = name! (usando el operador de aserción de nulabilidad)
    • Devuelve el valor actual de displayName

Importante: Después de actualizar la propiedad name, debes llamar a getDisplayName() para actualizar el campo displayName antes de volver a imprimir el perfil.

Completa el código para crear un perfil, actualizarlo y mostrar la información como se indica en la salida esperada.

Pruébalo tú mismo

void main() {
  // Crea un perfil de usuario
  final profile = UserProfile(1, 'today');
  
  // Imprime el perfil inicial
  profile.printProfile();
  
  // Actualiza el perfil
  profile.name = 'John Doe';
  profile.updateEmail('john@example.com');
  profile.age = 30;
  
  // Actualiza el nombre para mostrar e imprime el perfil actualizado
  profile.getDisplayName(); // Llama a esto para actualizar displayName
  profile.printProfile();
}

class UserProfile {
  // TODO: Añade propiedades (id, createdDate, name, email, age, displayName)
  
  // TODO: Crea el constructor
  
  // TODO: Implementa el método printProfile()
  
  // TODO: Implementa el método updateEmail()
  
  // TODO: Implementa el método getDisplayName()
}

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Dart online