我只是想知道讨厌goto
的声明是否与声明一样强大comefrom
?在我看来,他们的能力可能是相同的,但我对此并不完全确定。是否有任何正式证据证明它们同样强大(或不同样强大)?
对于任何从未听说过的人:comefrom
有点颠倒goto
:
comefrom doom;
WriteLine("I will never stop executing!");
doom:
我只是想知道讨厌goto
的声明是否与声明一样强大comefrom
?在我看来,他们的能力可能是相同的,但我对此并不完全确定。是否有任何正式证据证明它们同样强大(或不同样强大)?
对于任何从未听说过的人:comefrom
有点颠倒goto
:
comefrom doom;
WriteLine("I will never stop executing!");
doom:
comefrom
严格来说比 更强大goto
。
每个程序goto
都可以机械地转换成一个仅等效的comefrom
程序,方法是将每个程序替换goto
为相应的comefrom
.
反过来是不正确的。这个程序没有 goto-only 等价物:
doom:
comefrom doom;
WriteLine("I will never stop executing!");
goto doom;
comefrom doom;
WriteLine("Guess my time has come!");
该程序以未知次数打印第一个短语,然后打印第二个短语,然后退出。这种不确定性是无法用缺乏comefrom
.