cas rapide tomber à travers

Est-ce que swift a traversé la déclaration? par exemple si je fais ce qui suit

var testVar = "hello" var result = 0 switch(testVal) { case "one": result = 1 case "two": result = 1 default: result = 3 } 

est-il possible d’avoir le même code exécuté pour la cas “un” et la casse “deux”?

Oui. Vous pouvez le faire comme suit:

 var testVal = "hello" var result = 0 switch testVal { case "one", "two": result = 1 default: result = 3 } 

Vous pouvez également utiliser le mot-clé fallthrough :

 var testVal = "hello" var result = 0 switch testVal { case "one": fallthrough case "two": result = 1 default: result = 3 } 
 var testVar = "hello" switch(testVar) { case "hello": println("hello match number 1") fallthrough case "two": println("two in not hello however the above fallthrough automatically always picks the case following whether there is a match or not! To me this is wrong") default: println("Default") } 
 case "one", "two": result = 1 

Il n’y a pas de déclaration de rupture, mais les cas sont beaucoup plus flexibles.

Addendum: Comme le souligne Analog File, il existe des instructions de break dans Swift. Ils sont toujours disponibles pour une utilisation dans les boucles, même s’ils ne sont pas nécessaires dans les instructions switch , à moins que vous n’ayez besoin de remplir une case vide, car les cases vides ne sont pas autorisées. Par exemple: default: break .

Voici un exemple facile à comprendre:

 let value = 0 switch value { case 0: print(0) // print 0 fallthrough case 1: print(1) // print 1 case 2: print(2) // Doesn't print default: print("default") } 

Conclusion: Utilisez fallthrough pour exécuter le prochain cas (un seul) lorsque le précédent qui a été fallthrough est identique ou non.

Le mot clé fallthrough à la fin d’un cas provoque le comportement de recherche que vous recherchez, et plusieurs valeurs peuvent être vérifiées dans un seul cas.