我总是读到可怕的事情,“GOTO”是。但今天,阅读有关谷歌编程语言,我看到它suports协程(够程)。

的问题是:

Coroutine == GoTo 

或者

Coroutine != GoTo?

为什么?

其他提示

的主要区别是在支持他们允许跳转到任何位置在很少或没有限制的程序语言是goto语句。而协同程序可能表面上看起来相似,它们有很大的不同。

协程允许程序被暂停(与他们的所有上下文)和位于某些位置恢复。因此,尽管协同程序都暂停,yield控制等程序他们完成之前再后来恢复时,点它的程序产生,并从已知的时间提前恢复。

有不能简单地跳转到一个任意线在一个过程中,所讨论的过程必须等待在特定位置来恢复。尽管这种控制传递是比goto更加结构化,可以通过过度使用这个强大的机制来编写代码的混乱。再说那就是不与每一个强大的编程语言特性的情况下? ; - )

scroll top