Vous avez vu les instructions if
et juste avant les boucles, mais Swift utilise également un autre type de contrôle du flux d'exécution de votre code appelé switch/case
. Pensez à cela comme à une forme avancée de if
, car vous pouvez avoir beaucoup de conditions à vérifier et Swift exécutera celle qui est vraie.
Dans la forme la plus élémentaire d'un switch/case
, vous indiquez à Swift quelle variable vous souhaitez vérifier, puis fournissez une liste des cas possibles pour cette variable. Swift trouvera le premier cas qui correspond à la valeur de votre variable, puis exécutera le bloc de code associé. Lorsque l'exécution est terminée, Swift quitte le bloc switch/case
.
Voici un exemple simple :
let liveAlbums = 2
switch liveAlbums {
case 0:
print("You're just starting out")
case 1:
print("You just released iTunes Live From SoHo")
case 2:
print("You just released Speak Now World Tour")
default:
print("Have you done something new?")
}
Nous aurions très bien pu écrire cela en utilisant beaucoup de blocs if
et else if
, mais cette façon est plus claire et c'est important.
Un des avantages de switch/case
est que Swift veillera à ce que vos cas soient exhaustifs. Autrement dit, s'il est possible que votre variable ait une valeur que vous ne vérifiez pas, Xcode refusera de compiler votre application.
Dans les situations où les valeurs sont effectivement infinies, comme notre entier liveAlbums
, vous devez inclure un cas default
pour capturer ces valeurs potentielles. Oui, même si vous "savez" que vos données se situent dans une certaine plage bien déterminée, Swift veut être certain de prévoir tous les cas possibles au cas où il rencontrerait une telle valeur.
Swift peut évaluer vos instructions case
pour correspondre aux valeurs des variables à verifier. Par exemple, si vous voulez vérifier une plage de valeurs possibles, vous pouvez utiliser l'opérateur d'intervalle fermé, comme ceci :
let studioAlbums = 5
switch studioAlbums {
case 0...1:
print("You're just starting out")
case 2...3:
print("You're a rising star")
case 4...5:
print("You're world famous!")
default:
print("Have you done something new?")
}
Vous devez savoir que les blocs switch/case
en Swift ne fonctionnent pas tout à fait comme ils le font dans d'autres langages que vous avez peut-être déjà vus. Si vous avez l'habitude d'écrire break
dans vos blocs case
, sachez que cela n'est pas nécessaire en Swift.
Au lieu de cela, vous utilisez le mot-clé fallthrough
pour forcer l'exécution du case
suivant - c'est en fait le contraire. Bien sûr, si vous n'avez aucune idée de ce que cela signifie, c'est encore mieux : ne vous inquiétez pas !
SPONSORED Take the pain out of configuring and testing your paywalls. RevenueCat's Paywalls allow you to remotely configure and A/B test your entire paywall UI without any code changes or app updates.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.