Comprendre les optionnels
Fait partie de la section Fondamentaux du Journey Swift de Coddy. Leçon 11 sur 86.
Parfois, une variable peut ne pas avoir de valeur du tout. En Swift, nous représentons l’absence d’une valeur à l’aide des optionnels. Un optionnel indique « il y a une valeur, et elle est égale à x » ou « il n’y a aucune valeur du tout ».
Pour déclarer une valeur optionnelle, ajoutez un point d’interrogation ? après le type :
var nickname: String? = "Alex"
var age: Int? = nilDans l’exemple ci-dessus, nickname contient la valeur "Alex", tandis que age contient nil : c’est la manière dont Swift indique « aucune valeur ». Les variables ordinaires ne peuvent pas être nil, mais les optionnels le peuvent.
Imagine un optional comme une boîte qui peut contenir quelque chose ou être vide. Avant d’utiliser ce qu’elle contient, tu dois vérifier qu’il y a réellement quelque chose à l’intérieur. Il s’agit d’une fonctionnalité de sécurité essentielle de Swift qui aide à éviter les plantages dus à des valeurs manquantes inattendues.
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilRemarque que lorsque tu affiches un optional avec une valeur, il affiche Optional(100) plutôt que simplement 100. Pour accéder à la valeur réelle qu’il contient, tu dois déballer l’optional, ce que nous aborderons dans les prochaines leçons.
Défi
FacileÉcrivez une fonction createOptional qui prend un nombre et renvoie une chaîne indiquant à quoi ce nombre ressemblerait lorsqu’il est affiché comme une valeur optionnelle.
Important : cette fonction renvoie un String. Vous écrivez un texte qui ressemble à une valeur optionnelle, vous ne renvoyez pas une véritable valeur optionnelle.
Lorsque vous affichez une valeur optionnelle qui contient une valeur, Swift l’affiche au format Optional(value).
Rappel sur la syntaxe des fonctions : en Swift, une fonction qui renvoie une valeur utilise la flèche -> pour spécifier le type de retour, ainsi que le mot-clé return pour renvoyer le résultat. Par exemple :
func myFunction(param: Int) -> String {<br> return "result"<br>}
Vous pouvez construire la chaîne de retour à l’aide de l’interpolation de chaîne : "Optional(\(value))" : la partie \(value) insère directement le nombre dans la chaîne.
Paramètres :
value(Int) : le nombre à entourer au format optionnel
Renvoie : une chaîne au format Optional(value) où value est le nombre fourni.
Exemple : si l’entrée est 100, renvoyez "Optional(100)"
Essayez vous-même
func createOptional(value: Int) -> String {
// Retourne une String qui ressemble à un optional, pas un vrai optional
// Insère le nombre entre les parenthèses en utilisant l'interpolation de chaînes
return "Optional()"
}
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