Riepilogo - Gestire i valori null in sicurezza
Fa parte della sezione Fondamenti del percorso Dart di Coddy. Lezione 82 di 94.
Sfida
FacileStai 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:
- Proprietà non nullable (devono avere sempre un valore):
iddi tipointcreatedDatedi tipoString
- Proprietà nullable (possono essere null all'inizializzazione):
namedi tipoString?emaildi tipoString?agedi tipoint?
- Proprietà inizializzata in ritardo:
displayNamedi tipoString, dichiarata usando la parola chiavelate
- Costruttore:
- Accetta
idecreatedDatecome parametri obbligatori - Inizializza
displayNamea"Guest"
- Accetta
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> -------------------- Metodo:
<strong>void updateEmail(String? newEmail)</strong>- Aggiorna la proprietà
emailcon il nuovo valore.
- Aggiorna la proprietà
- Metodo:
<strong>String getDisplayName()</strong>- Se
namenon è null, impostadisplayName = name!(usando l'operatore di asserzione non-null) - Restituisce il valore corrente di
displayName
- Se
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
4Operatori - Parte 2
Operatori di confrontoAND logicoOR logicoNOT logicoOperatori di verifica del tipoRiepilogo - Effettuare confronti7Lavorare con le stringhe
Concatenazione di stringheInterpolazione di stringheStringhe multilineaProprietà delle stringheMetodi di base delle stringhe10Collezioni - Nozioni di base sulle mappe
Che cosa sono le mappe?Creare una mappaAccedere ai valori tramite chiaveCoppie chiave-valoreOttenere la dimensione della mappaOttenere le chiaviOttenere i valoriVerificare se una chiave esiste13Sicurezza sui valori null in dettaglio
Capire i valori nullTipi nullableTipi non nullableOperatore di asserzione nullInizializzazione tardivaRiepilogo - Gestire i valori null in sicurezza2Variabili e tipi di dati di base
Che cosa sono le variabili?StringheNumeri interi (int)Numeri double (double)Valori booleani (bool)Inferenza del tipo con 'var'Variabili finaliVariabili costantiConvenzioni di denominazioneNull safety di baseRiepilogo - Dichiarazione delle variabili8Flusso di controllo - Cicli
Il ciclo 'for'Il ciclo 'while'Il ciclo 'do-while'Uso di 'break' nei cicliUso di 'continue' nei cicliRipasso - Ripetere il codice3Operatori Parte 1
Operatori aritmeticiDivisione interaOperatore moduloIncremento e decrementoAbbreviazioni di assegnazioneRiepilogo - Calcoli semplici6Flusso di controllo - prendere decisioni
L'istruzione 'if'L'istruzione 'else'L'istruzione 'else if'Ripasso - decisioni sempliciIstruzioni 'if' annidateL'istruzione 'switch'9Collezioni - Fondamenti delle liste
Cosa sono le liste?Creare una listaAccedere tramite indiceOttenere la lunghezza di una listaAggiungere elementiRimuovere elementiVerificare se una lista è vuotaScorrere una lista12Funzioni avanzate
Parametri posizionali opzionaliParametri con nomeParametri con nome obbligatoriValori predefiniti dei parametriRiepilogo - Parametri delle funzioni15Progetto: Calcolatrice semplice
ConfigurazioneDichiarare un numeroEsercitati da solo: Compilatore Dart online