rdk*_*rdk 6 switch-statement control-flow ios swift
我有这样的代码
switch thing {
case thisThing:
do thing #1
do thing #2
case thatThing:
do thing #2
do thing #3
case anotherThing:
do thing #4
default:
default
}
Run Code Online (Sandbox Code Playgroud)
因此,每种情况都只有它能做到的事情.有些案例也与一个或多个其他案件做同样的事情.
如果我不想要任何重复的代码,有没有办法实现这一目标?
或者,有没有一个更有效的方法来做这个没有开关语句?我的意思是,我可能,例如,使用if语句,但像switch语句,我不能想办法来完成我想要的东西,而无需使用重复的代码.
此外,这个例子可能比上面更清楚
myFavoriteNumbers = []
myLeastFavoriteNumbers = []
switch myNumber {
case 1:
print("my number is number 1") // do this only for case 1
myFavoriteNumbers += [1] // do this for case 1 and case 2
case 2:
print("this is number 2") // do this only for case 2
myFavoriteNumbers += [2] // do this for case 1 and case 2
case 3:
print("I don't like number 3") // do this only for case 3
myLeastFavoriteNumbers += [3] // do this for case 3 and case 4
case 4:
print("Number Four") // do this only for case 4
myLeastFavoriteNumbers += [4] // do this for case 3 and case 4
default:
print("Default")
}
Run Code Online (Sandbox Code Playgroud)
小智 2
您可以嵌套 switch 语句来切换相同的值,如下所示:
switch myNumber {
case 1...2:
myFavoriteNumbers += [myNumber] // do this for case 1 and case 2
switch myNumber {
case 1:
print("my number is number 1") // do this only for case 1
default:
print("this is number 2") // do this only for case 2
}
case 3...4:
myLeastFavoriteNumbers += [myNumber] // do this for case 3 and case 4
switch myNumber {
case 3:
print("I don't like number 3") // do this only for case 3
default:
print("Number Four") // do this only for case 4
}
default:
print("Default")
}
Run Code Online (Sandbox Code Playgroud)
这不是您所见过的最优雅的代码,但它无需重复即可实现您想要实现的目标。
| 归档时间: |
|
| 查看次数: |
1593 次 |
| 最近记录: |