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了
推荐阅读
- 有啥方法,网站,项目可以自己练习计算广告学
- 100W——150W有啥好的车
- 最近有啥样的交友软件比较好玩呢
- 最近有啥好期待的网游玩
- 电子信息工程考研有啥偏软件类的专业可以报考
- 淘宝上有啥体验不错的假货,赝品或者山寨货?
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 端口到底是啥概念和ip之间有啥关系能形象+抽象的从技术角度描述一下吗
- QQ那个戴头盔吸烟的表情有啥来历
- 天猫买东西电话,家庭住址,姓名被泄露,阿里有啥措施
