L'instruction Guard Let
Fait partie de la section Fondamentaux du Journey Swift de Coddy. Leçon 13 sur 86.
Alors que if let déballe une valeur optionnelle et exécute du code lorsqu’une valeur existe, guard let adopte l’approche opposée. Il quitte la fonction prématurément lorsqu’une valeur est absente. Cela est particulièrement utile à l’intérieur des fonctions lorsque vous voulez gérer d’abord le cas « mauvais » et garder la logique principale claire.
func greet(name: String?) {
guard let unwrappedName = name else {
print("No name provided")
return
}
print("Hello, \(unwrappedName)!")
}
greet(name: "Taylor") // Bonjour, Taylor !
greet(name: nil) // Aucun nom fourniL’instruction guard let vérifie si name a une valeur. Si ce n’est pas le cas, le bloc else s’exécute et la fonction se termine avec return. Si l’optionnel contient une valeur, celle-ci est déballée dans unwrappedName, et voici la différence essentielle par rapport à if let : la variable déballée reste disponible pour le reste de la fonction, et pas seulement à l’intérieur d’un bloc.
Ce modèle de « sortie anticipée » rend votre code plus lisible en traitant les cas d’erreur dès le départ, afin que la logique principale ne soit pas imbriquée dans plusieurs instructions if.
Défi
FacileÉcris une fonction validateAge qui accepte un paramètre age facultatif et utilise guard let pour le déballer de manière sûre.
Si age vaut nil, retourne "Invalid age". Sinon, retourne "Age: [value]", où [value] correspond à l’âge déballé.
Paramètres :
age(Int?) : Un entier facultatif représentant l’âge d’une personne
Valeur retournée : Une chaîne, soit "Invalid age" si l’entrée vaut nil, soit "Age: [value]" avec la valeur déballée.
Exemple : Si age vaut 25, retourne "Age: 25". Si age vaut nil, retourne "Invalid age".
Essayez vous-même
func validateAge(age: Int) -> String {
// Écrivez le code ici
}
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 dynamiqueEntraînez-vous par vous-même : Playground Swift