switch语句中的swift比较元组与或
在switch语句中,如何实现元组的多种可能性?注意我试过了switch语句中的swift比较元组与或,swift,switch-statement,tuples,Swift,Switch Statement,Tuples,在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") } com
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")
}
comp1CurrCard
和comp2CurrCard
都是Int类型。
基本上我想要的是,如果比println(王牌决斗)多出1 | | | 14 | | | 27 | | | 40&comp2CurrCard
==1 | | 14 | 27 | | 40
然而,我不知道如何最好地做到这一点,我知道我希望使用switch语句,因为它似乎是解决这一问题的最佳方法
由于错误,我知道我做错了什么:p感谢您的帮助 我能想到这个解决方案
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")
}
我能想到这个解决办法
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")
}
也许是这样的:
var duel = (comp1CurrCard, comp2CurrCard)
switch duel {
case let (a, b) where [1,14,27,40].contains(a) && [1,4,27,40].contains(b):
println("ace duel")
case let (a,b) where [2,15,28,41].contains(a) && [2,15,28,41].contains(b):
println("2 duel")
default:
println("something else")
}
也许是这样的:
var duel = (comp1CurrCard, comp2CurrCard)
switch duel {
case let (a, b) where [1,14,27,40].contains(a) && [1,4,27,40].contains(b):
println("ace duel")
case let (a,b) where [2,15,28,41].contains(a) && [2,15,28,41].contains(b):
println("2 duel")
default:
println("something else")
}