Bonjour, je m'appelle Mark Nair et dans ces leçons, vous découvrirez les valeurs facultatives, l'opérateur de coalescence nul utilisant if let et en utilisant le let de garde. En Swift nous pouvons définir nos constantes et nos variables mais nous n'avons pas à leur donner une valeur au début. Nous devons juste leur donner la valeur lorsque nous l'utilisons. Mais si nous ne le faisons pas, nous devons leur donner un type. Nous allons jeter un coup d'oeil. Si je dis juste le nom, Swift dira, "Je ne sais pas de quoi tu parles, l'annotation de type manquante dans le modèle est l'erreur." Je dois donc faire quelque chose à ce sujet. Je dois lui donner un type. Même chose ici. Si j'ai un numéro, même problème, et puis on peut s'en tirer. Mais nous ne pouvons vraiment pas encore l'utiliser. Si nous essayons de l'utiliser, nous avons un problème. Nous n'avons pas initialisé la valeur. Contrairement aux autres langues, variables et constantes dans Swift n'obtenez aucune initialisation au début automatiquement. C'est courant dans d'autres endroits, mais pas à Swift. Swift parle de la façon dont nous utilisons les choses en toute sécurité. Et si vous avez une valeur par défaut automatiquement intégrée, vous pourriez rencontrer des problèmes plus tard. Par exemple, si le nom était la valeur par défaut d'une simple chaîne vide, et plus tard si nous accédons à la valeur de name et nous avons oublié ou nous n'avons donné aucune valeur nous-mêmes, nous allons simplement obtenir ceci et nous n'imprimons rien. Eh bien, nous imprimons en fait une chaîne vide. Il y a une certaine valeur là-dedans. Alors Swift prend le chemin inverse, dit : « Tu ferais mieux de savoir ce que tu fais. Tu ferais mieux de me donner une valeur à coup sûr." Il y a des moments où n'avoir aucune valeur a du sens. Ainsi, par exemple, disons que vous êtes un chanteur. Vous êtes un chanteur mondialement connu, vous vous appelez Sting. Sting n'a pas de nom de famille, n'incluant pas encore son vrai nom. Mais disons que Sting utilise l'une de vos applications, dit : "Quel est ton prénom ? Quel est votre nom de famille?" Sting dit : "Je n'ai pas de nom de famille." Alors qu'est-ce que tu fais ? Donc on aurait pu, mais alors que se passe-t-il ? OK, je m'appelle Sting, je suis prénom. Il y a quelque chose dans Swift sans valeur. Si vous avez utilisé une valeur par défaut d'une chaîne vide, Le nom de Sting serait une chaîne vide Sting. Ce n'est pas vraiment le nom, c'est juste Sting. Nous avons donc dans Swift une chose appelée optionnelle. Et une valeur facultative est exactement ce qu'elle dit. C'est une chose facultative que vous avez soit une valeur en elle ou vous n'avez aucune valeur. Et aucune valeur signifie zéro, qui est un mot spécial dans Swift. Maintenant, la façon dont nous distinguons cela est après le type que nous utilisons un point d'interrogation. Et pensez-y comme ça. Il y a une valeur, je ne sais pas, c'est une question. Le nom de famille n'a donc pas de valeur. Maintenant, juste parce que c'est facultatif cela signifie qu'il doit encore avoir un type. Dans ce cas, le nom de famille est de type chaîne facultative. Cela ne signifie pas que ce n'est qu'une option, c'est toujours un type. Et quand il n'y a rien dedans, la valeur est nulle. Ainsi, les options peuvent ou non avoir une valeur. Nous utilisons ce point d'interrogation pour l'ajouter pour distinguer cela. Faisons donc cette fonction. GetLycanthropeStatus renvoie donc une chaîne et c'est juste une fonction très simple. Et si je le lance, tout ce que nous obtiendrons est la valeur de retour de loup-garou. D'accord, c'est le statut, vous êtes un loup-garou. Changeons maintenant de fonction. Et si quelqu'un n'était pas un loup-garou et ils ne sont rien. Ce n'est pas un loup-garou et pas un non-loup-garou, c'est juste un rien. Je vais donc en faire la valeur d'une chaîne facultative. Alors maintenant changeons la fonction pour nous donner une sorte de conditionnel. Maintenant, je vais appeler la fonction. Quand la lune est, quand c'est une nouvelle lune alors la valeur est nulle. Mais quand la lune est pleine, la valeur est loup-garou. Donc, à la nouvelle lune, j'ai cette valeur facultative de zéro. Voyons donc ce qui se passe lorsque nous avons zéro. Configurez une nouvelle variable appelée wolfStatus. Alors je ferai ce statut de loup, et je rencontre un problème. La valeur de la chaîne de type facultative doit être désencapsulée. Donc, quand nous avons des options, considérez-les comme une petite boîte. Il peut y avoir une valeur dans la case. Il se peut qu'il n'y ait aucune valeur dans la case, nil. Mais pour utiliser cette valeur en toute sécurité, nous devons déballer cette boîte d'une manière agréable et sûre. Si je jette un œil à wolfStatus ici, la chaîne. Donc, pour le moment, c'est une chaîne parce que je l'ai notée ici. Mais si je commente ça et lancez ceci et si je Option + cliquez sur wolfStatus, la valeur maintenant, le type est une chaîne facultative. Si j'essaie de l'utiliser, Je verrai nul. Néant. Quand je dis que nous devons déballer l'optionnel, ce que je veux dire par là, c'est juste regarder l'optionnel comme quelque chose dans une boîte et soit n'a aucune valeur, soit a une valeur, et nous devons déballer cela en toute sécurité. Il y a un moyen de le déballer Où nous déchirons la boîte, et c'est ce que je vais vous montrer maintenant puis je vous montrerai comment le faire en toute sécurité et cela rend votre code beaucoup plus fluide. Faisons donc un autre exemple ici de circusJob. Maintenant, une autre chose, dans la documentation de la manière donner réellement une valeur facultative est ceci. On dirait que c'est long, mais c'est très explicite. Il est facultatif avec le point d'interrogation ici. Maintenant, nous n'avons pas à faire ça, on peut juste faire ça. Mais juste pour que vous sachiez, si jamais vous le regardez. Donc, en ce moment, j'ai une chaîne facultative circusJob de magicien. Je vais concaténer cette chaîne cette fois car cela vous montrera vraiment ce qui se passe. Maintenant, si je cours, eh bien, je ne peux même pas le faire. La valeur, nous obtenons ce truc rouge, la valeur doit être déballée. Maintenant, si je clique sur cette erreur, Je peux fusionner en utilisant deux points d'interrogation ou forcer le déballage en utilisant un point d'exclamation pour interrompre l'exécution si la valeur facultative contient nil. Eh bien, faisons celui-là. Alors je vais juste choisir ça. Maintenant, en cours d'exécution, c'est parfaitement bien. C'est parce que cette marque d'explication est le moyen de déchirer cette boîte, comme Hulk. Vous ne faites que déchirer les côtés et arriver à la valeur mais vous n'êtes pas très délicat à ce sujet. Ce qui signifie que si cette valeur est nulle, cette force de déballage va planter, et c'est un vilain plantage. C'est pourquoi probablement la plupart du temps tu ne veux pas faire une chose pareille. C'est exactement pourquoi je veux te le montrer vous montrer ce qu'il ne faut pas faire pour que vous puissiez le voir. Une méthode plus sûre pour contourner tout cela est-ce que je peux l'utiliser conditionnellement. Donc, si un circusJob n'est pas égal à la valeur de nil, maintenant nous aurons toujours une erreur ici car nous devons encore déballer cela. Mais dans ce cas, nous vérifions deux fois. Nous pouvons donc forcer le déballage de la valeur, mais nous ne planterons pas si c'est nul. Et laissez-moi vous montrer ce que cela signifie. Alors en ce moment, si ce n'est pas nul, Je suis un magicien, juste ici. S'il est nul, alors le conditionnel s'en chargera pour nous. Et puis la description, je ne travaille pas au cirque. C'est juste forcer le déballage. Il existe d'autres méthodes beaucoup plus agréables, beaucoup plus propre et plus sûr. Merci d'avoir regardé. Restez à l'écoute pour la prochaine leçon où je vais vous montrer comment utiliser l'opérateur de coalescence nul.