如何将控制权转移到Swift代码中的特定行中?替换Swift中的goto语句
在Objective-C我会做类似下面,使用goto
if(a==b)
{
goto i123;
}
else
{
goto i456;
}
NSLog(@"the not reachable point");
i123:
NSLog(@"line 123 is here");
int j = 5;
int x = 2+j;
i456:
NSLog(@"line 456 is here");
唯一的控制转移语句斯威夫特我能找到的是continue
,break
,fallthrough
,并return
continue
和break
只适用于循环; return
和fallthrough
不以这种方式传输控制权。
我能用什么?
编辑: -
朱利安__的回答实际上并没有解决我的问题,但它可能是唯一的选择现在。所以我已经接受了Julien的回答_
OMG。当然有些情况下goto很好。但通常你的代码看起来像50年代的FORTRAN。 – 2015-02-08 18:34:26
这很容易导致未定义的行为,例如如果在跳转到'i456:'后使用'x'的值。 Swift语言的一个目标是*编译器*可以检查所有变量是否在被使用之前被初始化。 – 2015-02-08 18:53:20
我会说“使用功能”。 'goto'最初是一个没有子程序的程序的解决方法。 – Sulthan 2016-01-24 19:47:41