快速比较 switch 语句中的元组与 or

arc*_*igh 1 tuples switch-statement swift

如何让 switch 语句中的元组具有多种可能性?注意我已经尝试过

var duel = (comp1CurrCard, comp2CurrCard)
    switch duel {

        case (1||14||27||40, 1||14||27||40):
            println("ace duel")

        case (2,15,28,41),(2,15,28,41):
            println("2 duel")
    }
Run Code Online (Sandbox Code Playgroud)

comp1CurrCardcomp2CurrCard都是 Int 类型。本质上我想要的是 if comp1CurrCard== 1 || 14 || 27|| 40 && comp2CurrCard== 1 || 14 || 27|| 40 比 println("王牌决斗")

但是我不知道如何最好地做到这一点,我确实知道我希望使用 switch 语句,因为它似乎是解决它的最佳方法

我知道由于错误我做错了一些事情:P 感谢任何帮助!

San*_*eep 5

我能想到这个解决方案

var duel = (2, 2)

switch duel{
case let (m, n) where (m == 1 || m == 14 ||  m == 27 || m == 40) && (n == 2 || n == 14 || n == 27 || n == 40):
  println("ace duel")
case let (m, n) where (m == 2 || m == 15 || m == 28 || m==41) && (n == 2 || n == 15 || n == 28 || n == 41):
  println("2 duel")
default:
  println("No")
}
Run Code Online (Sandbox Code Playgroud)