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 de valeur en utilisant des optionals. Un optional indique "il y a une valeur, et elle est égale à x" ou "il n'y a pas de valeur du tout."
Pour déclarer un optional, 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 — la façon pour Swift de dire « aucune valeur ». Les variables ordinaires ne peuvent pas être nil, mais les optionnels le peuvent.
Pensez à un `optional` comme à une boîte qui peut contenir quelque chose ou être vide. Avant d'utiliser ce qu'elle contient, vous devez vérifier s'il y a vraiment quelque chose à l'intérieur. C'est une fonctionnalité de sécurité clé dans Swift qui permet d'éviter les plantages dus à des valeurs manquantes inattendues.
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilRemarquez que lorsque vous imprimez un optional avec une valeur, cela affiche Optional(100) plutôt que juste 100. Pour accéder à la valeur réelle située à l'intérieur, vous devez déballer (unwrap) 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 ressemblerait ce nombre s'il était affiché sous forme d'optionnel.
Important : cette fonction renvoie une String. Vous écrivez du texte qui ressemble à un optionnel, vous ne renvoyez pas une véritable valeur optionnelle.
Lorsque vous affichez un optionnel 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, et 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 en utilisant l'interpolation de chaîne : "Optional(\(value))" — la partie \(value) insère le nombre directement dans la chaîne.
Paramètres :
value(Int) : Le nombre à envelopper 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