Menu
CoddyTech

Opérateur de fusion nil

Fait partie de la section Fondamentaux du Journey Swift de Coddy. Leçon 14 sur 86.

Parfois, tu veux simplement fournir une valeur par défaut lorsqu’une valeur optionnelle est nil, sans écrire plusieurs lignes de code. L’opérateur de coalescence des valeurs nil de Swift (??) fait exactement cela. Il déplie une valeur optionnelle si elle contient une valeur, ou renvoie une valeur par défaut si elle est nil.

let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guest

Comme nickname est nil, l’opérateur renvoie plutôt "Guest". Si nickname avait une valeur, cette valeur serait utilisée.

let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoder

L’opérateur de coalescence de nil est parfait pour les expressions sur une seule ligne où tu as besoin d’une valeur de repli. C’est plus propre que d’écrire une instruction if let lorsque tu veux simplement remplacer nil par une valeur par défaut. Lorsque la valeur par défaut n’est pas optionnelle, le résultat ne l’est pas non plus, tu peux donc l’utiliser directement sans autre déballage.

challenge icon

Défi

Facile
Écris une fonction getDisplayName qui prend un username facultatif et un defaultName, puis renvoie le nom d’affichage approprié à l’aide de l’opérateur de coalescence de nil.

Si le nom d’utilisateur est vide (représenté par une chaîne vide ""), traite-le comme nil et renvoie le nom par défaut. Sinon, renvoie le nom d’utilisateur.

Paramètres :

  • username (String) : le nom de l’utilisateur (une chaîne vide représente nil)
  • defaultName (String) : le nom de remplacement à utiliser

Renvoie : le nom d’utilisateur s’il n’est pas vide, sinon defaultName.

Indice : Dans ta fonction, stocke le nom d’utilisateur dans une variable String? et, si le nom d’utilisateur est égal à "", définis cette variable sur nil à l’aide d’un simple if. Utilise ensuite ?? pour fournir la valeur de remplacement.

Essayez vous-même

func getDisplayName(username: String, defaultName: String) -> 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

Entraînez-vous par vous-même : Playground Swift