Récapitulatif - Gérer null en sécurité
Fait partie de la section Fondamentaux du Journey Dart de Coddy — leçon 82 sur 94.
Défi
FacileVous développez un système de profil utilisateur pour une application mobile. Créez une classe UserProfile qui démontre votre compréhension des fonctionnalités de null safety de Dart.
Implémentez une classe UserProfile avec les éléments suivants :
- Propriétés non nullables (doivent toujours avoir une valeur) :
idde typeintcreatedDatede typeString
- Propriétés nullables (peuvent être null à l'initialisation) :
namede typeString?emailde typeString?agede typeint?
- Propriété initialisée tardivement :
displayNamede typeString, déclarée en utilisant le mot-clélate
- Constructeur :
- Accepte
idetcreatedDatecomme paramètres requis - Initialise
displayNameà"Guest"
- Accepte
Méthode :
<strong>void printProfile()</strong>Affiche le profil utilisateur avec le format suivant :User Profile: ID: <id> Created: <createdDate> Name: <name or 'Not provided'> Email: <email or 'Not provided'> Age: <age or 'Not provided'> Display Name: <displayName> -------------------- Méthode :
<strong>void updateEmail(String? newEmail)</strong>- Met à jour la propriété
emailavec la nouvelle valeur.
- Met à jour la propriété
- Méthode :
<strong>String getDisplayName()</strong>- Si
namen'est pas null, définitdisplayName = name!(en utilisant l'opérateur d'affirmation null) - Retourne la valeur actuelle de
displayName
- Si
Important : Après avoir mis à jour la propriété name, vous devez appeler getDisplayName() pour mettre à jour le champ displayName avant d'imprimer à nouveau le profil.
Complétez le code pour créer un profil, le mettre à jour et afficher les informations comme indiqué dans la sortie attendue.
Essayez vous-même
void main() {
// Créer un profil utilisateur
final profile = UserProfile(1, 'today');
// Afficher le profil initial
profile.printProfile();
// Mettre à jour le profil
profile.name = 'John Doe';
profile.updateEmail('john@example.com');
profile.age = 30;
// Mettre à jour le nom d'affichage et afficher le profil mis à jour
profile.getDisplayName(); // Appeler ceci pour mettre à jour displayName
profile.printProfile();
}
class UserProfile {
// TODO: Ajouter les propriétés (id, createdDate, name, email, age, displayName)
// TODO: Créer le constructeur
// TODO: Implémenter la méthode printProfile()
// TODO: Implémenter la méthode updateEmail()
// TODO: Implémenter la méthode getDisplayName()
}Toutes les leçons de Fondamentaux
4Opérateurs Partie 2
Opérateurs de comparaisonET logiqueOU logiqueNON logiqueOpérateurs de test de typeRécapitulatif - Faire des comparaisons7Travailler avec les chaînes
Concaténation de chaînesInterpolation de chaînesChaînes multi-lignesPropriétés des chaînesMéthodes de base des chaînes10Collections - Bases des Maps
Que sont les Maps ?Créer une MapAccéder aux valeurs par cléPaires clé-valeurObtenir la taille d'une MapObtenir les clésObtenir les valeursVérifier si une clé existe13Sécurité null en profondeur
Comprendre nullTypes nullablesTypes non nullablesOpérateur d'affirmation non nulleInitialisation tardiveRécapitulatif - Gérer null en sécurité2Variables et types de données de base
Qu'est-ce que les variables ?ChaînesEntiers (int)Doubles (double)Booléens (bool)Inférence de type avec 'var'Variables finalesVariables constantesConventions de nommageSécurité null de baseRécapitulatif - Déclaration des variables8Flux de contrôle - Boucles
La boucle 'for'La boucle 'while'La boucle 'do-while'Utiliser 'break' dans les bouclesUtiliser 'continue' dans les bouclesRécapitulatif - Répéter du code3Opérateurs Partie 1
Opérateurs arithmétiquesDivision entièreOpérateur moduloIncrémentation et décrémentationRaccourcis d'affectationRécapitulatif - Calculs simples6Flux de contrôle - Prise de décision
L'instruction 'if'L'instruction 'else'L'instruction 'else if'Récapitulatif - Décisions simplesInstructions 'if' imbriquéesL'instruction 'switch'9Collections - Bases des listes
Qu’est-ce qu’une liste ?Créer une listeAccéder par indexObtenir la longueur d’une listeAjouter des élémentsSupprimer des élémentsVérifier si une liste est videItérer sur une liste12Fonctions avancées
Paramètres positionnels optionnelsParamètres nommésParamètres nommés requisValeurs par défaut des paramètresRécap - Paramètres de fonction15Projet : Calculatrice simple
Mise en placeDéclaration d'un nombre