如何將控制權轉移到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