迅速的情况下通过

迅速有声明吗? 如果我做了以下

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

是否有可能为“一”和“两”情况执行相同的代码?

是。 你可以这样做,如下所示:

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

或者,您可以使用fallthrough关键字:

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

没有断言,但情况更加灵活。

附录:正如Analog File指出的那样,Swift中实际上有break语句。 它们仍然可以在循环中使用,尽pipe在switch语句中是不必要的,除非你需要填充一个空的情况,因为空的情况是不允许的。 例如: default: break

 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") } 

在案例结束时,关键字贯穿问题会导致您正在寻找的贯穿行为,并且可以在一个案例中检查多个值。

这里是你容易理解的例子:

 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") } 

结论:使用fallthrough执行下一个案件(只有一个),当前一个案件fallthrough是否匹配。