Déballage avec If Let
Fait partie de la section Fondamentaux du Journey Swift de Coddy — leçon 12 sur 86.
Pour accéder en toute sécurité à la valeur contenue dans un optionnel, nous utilisons if let — une technique appelée liaison optionnelle (optional binding). Cela permet de vérifier si l'optionnel contient une valeur et, si c'est le cas, de l'extraire dans une constante temporaire.
var username: String? = "Swift_Dev"
if let name = username {
print("Welcome, \(name)")
} else {
print("No username found")
}
// Bienvenue, Swift_DevIci, if let vérifie si username a une valeur. Puisque c'est le cas, la valeur est extraite dans name, qui n'existe qu'à l'intérieur du bloc if. Si username était nil, le bloc else s'exécuterait à la place.
var age: Int? = nil
if let unwrappedAge = age {
print("Age is \(unwrappedAge)")
} else {
print("Age not provided")
}
// Âge non fourniPuisque age est nil, la condition échoue et le bloc else s'exécute. Cela empêche les plantages qui se produiraient si nous essayions d'utiliser directement une valeur manquante.
Défi
FacileLa variable suivante vous est fournie :
var nickname: String? = "CoddyLearner"Utilisez if let pour déballer en toute sécurité nickname. S'il contient une valeur, affichez Hello, [value]! où [value] est le pseudonyme déballé. S'il est nil, affichez No nickname set.
Aide-mémoire
Utilisez if let (liaison optionnelle) pour déballer en toute sécurité une optionnelle et accéder à sa valeur :
var username: String? = "Swift_Dev"
if let name = username {
print("Welcome, \(name)")
} else {
print("No username found")
}
// Welcome, Swift_DevSi l'optionnelle contient une valeur, elle est déballée dans une constante temporaire qui n'existe qu'à l'intérieur du bloc if. Si l'optionnelle est nil, le bloc else s'exécute :
var age: Int? = nil
if let unwrappedAge = age {
print("Age is \(unwrappedAge)")
} else {
print("Age not provided")
}
// Age not providedEssayez vous-même
var nickname: String? = "CoddyLearner"
// TODO : Écrivez votre code ci-dessous
// Utilisez if let pour déballer nickname en toute sécurité
// S'il contient une valeur, affichez "Hello, [value]!"
// S'il est nil, affichez "No nickname set"Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur ModuloAffectation composéeRécapitulatif - Mathématiques simplesOpérateurs de comparaison7Entrées/Sorties de base
Fonction PrintInterpolation de chaînesSaisie ReadLineConversion de typesRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourÉtiquettes d'argumentRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs par défaut13Itération sur les séquences
Itérer sur les élémentsLa méthode d'énumérationItérer sur les chaînes P1Itérer sur les chaînes P22Variables
Let vs VarAnnotations de typeNombresStringsBooléensConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateur ternaire8Calculateur de partage de facture
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz3Les Optionnels
Comprendre les optionnelsDéballage avec If LetL'instruction Guard LetOpérateur de fusion nilRécapitulatif - Déballage sécurisé6Prise de décision
L'instruction IfIf - ElseRécapitulatif - Calculatrice simpleL'instruction SwitchSwitch avec des intervalles9Boucles
Boucle For-InBoucle WhileBoucle Repeat-WhileBreakContinueRécapitulatif - FactorielleIntervalles dans les bouclesBoucles imbriquéesRécapitulatif - Entrée dynamique