goto 和 co-routine有啥区别

Continue:中止當次循環,開始下一次循環。
Goto:跳到指定的位置去(VB裡的常見的用法是onerror goto LB, LB是定義用來處理異常的標籤,異常處理代碼放在這個標籤後面),面向對象語言不會有這種寫法。
--------update-------
【goto 和 co-routine有啥区别】 不好意思,是我大意看错了,还以为是continue, 题主问的是coroutine,这个我在工作中没用过呀?没办法回复,大家直接无视我的回答即可。

■网友
从来不用
■网友
这个问题问得有问题。goto是一种语言机制,协程(coroutine)是一种运行时的一种能力。怎么会是一回事呢?goto无非是跳转,目的是灵活地调整程序执行的顺序;协程的目的是为了并发,是让程序同时做很多事。goto 被批是因为不安全,可读性差,跟协程没关系。协程被捧是因为他相对进程和线程更轻量化,跟 goto 也没关系。continue 又是什么鬼啊?谁会捧 continue 啊?你们捧 public void main() 么?23333
■网友
最好说明语言(c/c#/go/lua),不同语言的实现、运行机制可能不一定完全一样。另外,continue和coroutine也不是一回事啊goto是任意跳转,导致程序结构与运行过程完全脱节continue是跳转到固定位置,虽然也跳转了,但有一个好处:方便地 提前结束一次循环coroutine在执行机制上是与前2者完全不同,前2者是一个执行流程里的跳转,coroutine则是用户(程序)自行调度实现多流程的一种方式(不用多线程,内核开销低,但需要自行保存上下文信息)
■网友
c语言goto只能跳到同函数的标签吧,longjmp倒是可以,不过跳转后局部变量的值是否会恢复呢?栈上的值会恢复,寄存器中的值是否恢复未定义。
■网友
use go(lang) to realize coroutine
■网友
goto容易导致逻辑混乱
■网友
参见:为什么说goto是一种不好的用法? - 编程另外愚以为相比本题,题主可能更需要的是:提问的智慧
■网友
goto是想到哪里就到哪里,没有任何规则没有任何限制,所以能不用就不用;continue是有规则的,中断当前循环,继续下一个循环执行,所以可以用。其实也没有人捧continue了


    推荐阅读