Menu
Coddy logo textTech

Riepilogo - Gestire i valori null in sicurezza

Fa parte della sezione Fondamenti del percorso Dart di Coddy. Lezione 82 di 94.

challenge icon

Sfida

Facile

Stai creando un sistema di profili utente per un'app mobile. Crea una classe UserProfile che dimostri la tua comprensione delle funzionalità di sicurezza null di Dart.

Implementa una classe UserProfile con quanto segue:

  1. Proprietà non nullable (devono avere sempre un valore):
    • id di tipo int
    • createdDate di tipo String
  2. Proprietà nullable (possono essere null all'inizializzazione):
    • name di tipo String?
    • email di tipo String?
    • age di tipo int?
  3. Proprietà inizializzata in ritardo:
    • displayName di tipo String, dichiarata usando la parola chiave late
  4. Costruttore:
    • Accetta id e createdDate come parametri obbligatori
    • Inizializza displayName a "Guest"
  5. Metodo: <strong>void printProfile()</strong> Stampa il profilo utente nel seguente 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. Metodo: <strong>void updateEmail(String? newEmail)</strong>
    • Aggiorna la proprietà email con il nuovo valore.
  7. Metodo: <strong>String getDisplayName()</strong>
    • Se name non è null, imposta displayName = name! (usando l'operatore di asserzione non-null)
    • Restituisce il valore corrente di displayName

Importante: Dopo aver aggiornato la proprietà name, devi chiamare getDisplayName() per aggiornare il campo displayName prima di stampare di nuovo il profilo.

Completa il codice per creare un profilo, aggiornarlo e visualizzare le informazioni come mostrato nell'output previsto.

Provalo tu

void main() {
  // Crea un profilo utente
  final profile = UserProfile(1, 'today');
  
  // Stampa il profilo iniziale
  profile.printProfile();
  
  // Aggiorna il profilo
  profile.name = 'John Doe';
  profile.updateEmail('john@example.com');
  profile.age = 30;
  
  // Aggiorna il nome visualizzato e stampa il profilo aggiornato
  profile.getDisplayName(); // Chiama questo metodo per aggiornare displayName
  profile.printProfile();
}

class UserProfile {
  // TODO: Aggiungi le proprietà (id, createdDate, name, email, age, displayName)
  
  // TODO: Crea il costruttore
  
  // TODO: Implementa il metodo printProfile()
  
  // TODO: Implementa il metodo updateEmail()
  
  // TODO: Implementa il metodo getDisplayName()
}

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Dart online