有没有办法在 Swift 开关中检查多个条件?
Is there a way of checking more than one condition in Swift switch?
在Swift中,我需要这样切换:
switch char {
case "+": statement 1; statement 3
case "-": statement 2; statement 3
default: statement 3
}
但是,我不想复制语句 3,因为它实际上很长,所以我正在寻找一种替代方法(如果存在的话)以某种方式让 switch 检查每个 case 条件,并且也执行默认值。
重复代码?适合局部函数的候选者:
func statement3() {
// ... lots of stuff here ...
}
switch char {
case "+": statement 1; statement3()
case "-": statement 2; statement3()
default: statement3()
}
但是如果你真的想在每个情况下做statement3
,那么就把它从switch语句中取出来一共:
switch char {
case "+": statement 1
case "-": statement 2
default: break
}
statement 3
您可以通过一个案例并跳过下一个案例让您违约的唯一方法是重新测试条件:
switch char {
case "+": statement 1; fallthrough
case "-": if char == "-" { statement 2 }; fallthrough
default: statement 3
}
老实说,归根结底,这看起来非常节俭。我建议你用函数调用替换你的长语句并保持你上面给出的控制流。
在Swift中,我需要这样切换:
switch char {
case "+": statement 1; statement 3
case "-": statement 2; statement 3
default: statement 3
}
但是,我不想复制语句 3,因为它实际上很长,所以我正在寻找一种替代方法(如果存在的话)以某种方式让 switch 检查每个 case 条件,并且也执行默认值。
重复代码?适合局部函数的候选者:
func statement3() {
// ... lots of stuff here ...
}
switch char {
case "+": statement 1; statement3()
case "-": statement 2; statement3()
default: statement3()
}
但是如果你真的想在每个情况下做statement3
,那么就把它从switch语句中取出来一共:
switch char {
case "+": statement 1
case "-": statement 2
default: break
}
statement 3
您可以通过一个案例并跳过下一个案例让您违约的唯一方法是重新测试条件:
switch char {
case "+": statement 1; fallthrough
case "-": if char == "-" { statement 2 }; fallthrough
default: statement 3
}
老实说,归根结底,这看起来非常节俭。我建议你用函数调用替换你的长语句并保持你上面给出的控制流。