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 à l'aide d'optionnels. Un optionnel 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 optionnel, 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 de Swift de dire « aucune valeur ». Les variables régulières ne peuvent pas être nil, mais les optionnels le peuvent.
Considérez un optionnel comme une boîte qui pourrait contenir quelque chose ou qui pourrait être vide. Avant d'utiliser ce qui se trouve à l'intérieur, vous devez vérifier s'il y a effectivement quelque chose. Il s'agit d'une fonctionnalité de sécurité clé dans Swift qui aide à prévenir les plantages dus à des valeurs manquantes inattendues.
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilRemarquez que lorsque vous affichez un optionnel avec une valeur, il affiche Optional(100) plutôt que simplement 100. Pour accéder à la valeur réelle à l'intérieur, vous devez déballer l'optionnel — 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 de caractères montrant à quoi ressemblerait ce nombre s'il était affiché comme un optionnel.
Lorsque vous affichez un optionnel qui contient une valeur, Swift l'affiche au format Optional(value).
Rappel de 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 dans le format optionnel
Retourne : Une chaîne de caractères au format Optional(value) où value est le nombre fourni.
Exemple : Si l'entrée est 100, retournez "Optional(100)"
Aide-mémoire
En Swift, les optionnels représentent l'absence ou la présence d'une valeur. Un optionnel peut soit contenir une valeur, soit être nil.
Pour déclarer un optionnel, ajoutez un point d'interrogation ? après le type :
var nickname: String? = "Alex"
var age: Int? = nilLes variables classiques ne peuvent pas être nil, mais les optionnels le peuvent. Utilisez nil pour représenter « aucune valeur » :
var score: Int? = 100
score = nilLors de l'affichage d'un optionnel avec une valeur, Swift l'affiche comme Optional(value) :
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilEssayez vous-même
func createOptional(value: Int) -> String {
// Écrire le code ici
}
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 dynamique