Swift est un langage sensible, si une variable ou une valeur est nil, l’application va cracher et s’arrêter et c’est quelque chose que nous voulons absolument éviter.

Pour ceci, il existe les optionnels. L’optionnel n’est pas un type en lui même mais une façon sûre de dire que telle ou telle variable a le droit de ne pas avoir de valeur (être nil). Pour utiliser un optionnel, nous allons ajouter un ? après le choix du type de variable ou constante

var nonOptional: String
var optional: String?
print(nonOptional) 

Si nous essayons de faire un print de nonOptional, nous avons une erreur. Par contre, si nous faisons un print de optional:

print(optional)
//nil 

Nous avons obtenu nil (pas de valeur) dans la console. Ajoutons des valeurs maintenant.

nonOptional = “Je suis non optionnelle”
optional = “Je suis optionnelle”
print(nonOptional)
//Je suis non optionnelle
print(optional)
//Optional(“Je suis optionnelle”) 

nonOptional n’a plus d’erreur car elle a désormais une valeur. Par contre le print de optional décrit bien la valeur comme optionnelle.

Lorsque nous devrons utiliser une valeur optionnelle, nous devrons ‘déballer’ cette valeur pour la rendre non optionnelle avec un ! à la fin du nom de la variable. 

print(optional!)
//”Je suis optionnelle” 

Et voila, nous avons a nouveau une valeur non optionnelle, mais à nouveau sensible au crash si la valeur est nil.

Nous verrons dans les conditions comment gérer ceci.