Sommaire

Valeurs optionnelles Valeurs optionnelles

En plus de manipuler des valeurs, il est souvent nécessaire de modéliser l’absence de valeur. Certains langages permettent l’utilisation omniprésente d’une valeur null qui peut apparaître à la place de n’importe quelle autre valeur, ce qui peut parfois provoquer des erreurs si le développeur n’est pas vigilant.

L’approche de Swift est qu’aucune valeur ne peut être nulle par défaut. Dans les exemples précédents, les types que l’on a manipulés ne permettent pas l’absence de valeur, que ce soient les entiers, les chaînes, les tableaux... En manipulant ces éléments, le compilateur s’assure qu’ils ne peuvent jamais être nuls.

Afin de permettre l’absence de valeur, il faut ajouter un point d’interrogation après le type manipulé, créant ainsi un type optionnel :

var optString: String?  
var optArrayOfInt: [Int]?  
var arrayOfOptionalInt: [Int?]

Dans cet exemple, le tableau optionnel d’entiers [Int]? et le tableau d’entiers optionnels [Int?] ne sont pas identiques. Dans le premier cas le tableau peut ne pas exister, dans le second certaines valeurs peuvent ne pas exister dans le tableau.

Lorsque l’on manipule des types optionnels, le compilateur ne permet pas l’emploi de leur valeur sans quelques vérifications au préalable. Le code suivant provoque une erreur de compilation au moment du calcul ...