Dans Swift, comment puis-je écrire un cas dans une instruction switch qui teste la valeur commutée par rapport au contenu d'un optionnel , en sautant le cas si le optionnel contient nil
?
Voici à quoi j'imagine que cela pourrait ressembler:
let someValue = 5
let someOptional: Int? = nil
switch someValue {
case someOptional:
// someOptional is non-nil, and someValue equals the unwrapped contents of someOptional
default:
// either, someOptional is nil, or someOptional is non-nil but someValue does not equal the unwrapped contents of someOptional
}
Si je viens d' écrire exactement comme ça, le compilateur se plaint que someOptional
n'est pas déballés, mais si je explicitement Déballer en ajoutant !
à la fin, je cours d'obtenir une erreur d'exécution tout moment someOptional
contient nil
. Ajouter à la ?
place de !
aurait du sens pour moi (dans l'esprit du chaînage optionnel, je suppose), mais ne fait pas disparaître l'erreur du compilateur (c'est-à-dire qu'il ne déballe pas réellement l'option).