Chaînage de valeurs par défaut
Combinez proprement plusieurs solutions de repli.
Chaînage de valeurs par défaut est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.
Plus d'un fallback
Il arrive que vous ayez plusieurs sources optionnelles et que vous vouliez utiliser la première qui n'est pas nulle. Vous pouvez enchaîner plusieurs opérateurs ??.
let primary: String? = nil
let secondary: String? = "Backup"
let name = primary ?? secondary ?? "Default"
print(name)Lecture d'un enchaînement
Lisez a ?? b ?? c ainsi : utilisez a si elle n'est pas nulle, sinon b, et sinon c. L'évaluation s'arrête à la première valeur trouvée.
let a: Int? = nil
let b: Int? = nil
let c = 7
print(a ?? b ?? c)La première valeur non nulle l'emporte
Dès qu'une optionnelle fournit une valeur, les autres sont ignorées. Ici, secondary l'emporte et la valeur par défaut finale n'est jamais atteinte.
let primary: Int? = nil
let secondary: Int? = 50
let fallback = 0
print(primary ?? secondary ?? fallback)Toutes les valeurs sont optionnelles sauf la dernière
Dans un enchaînement, chaque opérande, sauf le dernier, est généralement une valeur optionnelle. Le dernier est la valeur par défaut garantie, qui n'est pas optionnelle.
let nick: String? = nil
let full: String? = nil
let result: String = nick ?? full ?? "Anonymous"
print(result)Évaluation en court-circuit
Comme && et ||, l'enchaînement avec ?? s'évalue en court-circuit. Dès qu'une valeur est trouvée, les expressions suivantes ne sont pas évaluées.
func makeDefault() -> Int {
print("default computed")
return 0
}
let found: Int? = 9
print(found ?? makeDefault())Associativité à droite
L'opérateur ?? est associatif à droite ; ainsi, a ?? b ?? c est regroupé comme a ?? (b ?? c). C'est exactement le comportement souhaité pour les fallback.
let x: Int? = nil
let y: Int? = nil
let z: Int? = 3
print(x ?? (y ?? (z ?? 0)))Valeurs par défaut pour une configuration à plusieurs niveaux
L'enchaînement est particulièrement utile pour une configuration à plusieurs niveaux : paramètre de l'utilisateur, puis paramètre de l'application, puis valeur par défaut codée en dur.
let userTheme: String? = nil
let appTheme: String? = "light"
let theme = userTheme ?? appTheme ?? "system"
print(theme)Combiner avec des conversions
Vous pouvez enchaîner des conversions susceptibles d'échouer avec une valeur par défaut finale pour analyser l'entrée de manière robuste.
let raw: String? = nil
let parsed = raw.flatMap { Int($0) } ?? 0
print(parsed)Recherches dans des dictionnaires enchaînées
Plusieurs recherches dans des dictionnaires peuvent être enchaînées afin d'utiliser la première clé disponible.
let prefs = ["color": "blue"]
let pick = prefs["accent"] ?? prefs["color"] ?? "gray"
print(pick)Garder les enchaînements courts
Deux ou trois fallback se lisent bien. Si vous constatez que vous en enchaînez beaucoup, envisagez d'extraire la logique dans une fonction pour gagner en clarté.
let one: String? = nil
let two: String? = nil
let three = "C"
print(one ?? two ?? three)Type de résultat d'un enchaînement
Le résultat final d'un enchaînement est non optionnel tant que le dernier opérande ne l'est pas. La valeur peut ainsi être utilisée immédiatement en toute sécurité.
let v1: Int? = nil
let v2: Int? = 4
let total: Int = (v1 ?? v2 ?? 0) + 1
print(total)Vérification rapide
Testez les enchaînements de fallback.
Récapitulatif : enchaîner des valeurs par défaut
Enchaînez les opérateurs ?? pour essayer plusieurs valeurs optionnelles dans l'ordre et utiliser une valeur par défaut finale en dernier recours. La première valeur non nulle l'emporte, l'évaluation s'effectue en court-circuit et le résultat n'est pas optionnel.
let p: String? = nil
let s: String? = "ok"
print(p ?? s ?? "none")Questions Fréquemment Posées
La leçon « Chaînage de valeurs par défaut » est-elle gratuite ?
Oui — le texte complet de « Chaînage de valeurs par défaut » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Chaînage de valeurs par défaut » ?
Combinez proprement plusieurs solutions de repli. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Swift Academy ?
Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Chaînage de valeurs par défaut » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?
Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Opérateur de coalescence des valeurs nil
- Chaînage de valeurs par défaut
- Valeurs par défaut des paramètres de fonction
- Indices par défaut des dictionnaires