Menu
Coddy logo textTech

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 un optionnel et exécute le code lorsqu'une valeur existe, guard let adopte l'approche inverse — il sort prématurément lorsqu'une valeur est manquante. C'est particulièrement utile à l'intérieur des fonctions où vous souhaitez traiter le cas « défavorable » en premier et garder la logique principale propre.

func greet(name: String?) {
    guard let unwrappedName = name else {
        print("No name provided")
        return
    }
    print("Hello, \(unwrappedName)!")
}

greet(name: "Taylor") // Hello, Taylor!
greet(name: nil)      // Aucun nom fourni

L'instruction guard let vérifie si name possède 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, il est déballé dans unwrappedName — et voici la différence clé 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 » maintient la lisibilité de votre code en gérant les cas d'erreur dès le départ, afin que la logique principale ne soit pas imbriquée dans plusieurs instructions if.

challenge icon

Défi

Facile

Écrivez une fonction validateAge qui prend un paramètre optionnel age et utilise guard let pour le déballer en toute sécurité.

Si l'âge est nil, retournez "Invalid age". Sinon, retournez "Age: [value]"[value] est l'âge déballé.

Paramètres :

  • age (Int?) : Un entier optionnel représentant l'âge d'une personne

Retourne : Une chaîne de caractères — soit "Invalid age" si l'entrée est nil, soit "Age: [value]" avec la valeur déballée.

Exemple : Si age est 25, retournez "Age: 25". Si age est nil, retournez "Invalid age".

Aide-mémoire

Utilisez guard let pour déballer un optionnel et sortir prématurément lorsqu'une valeur est manquante :

func greet(name: String?) {
    guard let unwrappedName = name else {
        print("No name provided")
        return
    }
    print("Hello, \(unwrappedName)!")
}

L'instruction guard let vérifie si l'optionnel contient une valeur. Si ce n'est pas le cas, le bloc else s'exécute et quitte la fonction avec return. Si l'optionnel contient une valeur, il est déballé et reste disponible pour le reste de la portée de la fonction.

Ce modèle de « sortie précoce » gère les cas d'erreur d'emblée, ce qui permet de garder la logique principale propre et non indentée.

Essayez vous-même

func validateAge(age: Int) -> String {
    // Écrivez le code ici
}
quiz iconTestez-vous

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