Menu
Coddy logo textTech

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_Dev

Ici, 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 fourni

Puisque 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.

challenge icon

Défi

Facile

La 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]![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_Dev

Si 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 provided

Essayez 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"
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