亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

協程和“ goto”之間的區別?

協程和“ goto”之間的區別?

Go
牛魔王的故事 2021-03-21 12:59:27
我總是讀到“ goto”這個可怕的東西。但是今天,在閱讀有關Google編程語言Go的文章時,我發現它取代了協程(Goroutines)。問題是:Coroutine == GoTo或者Coroutine != GoTo?為什么?
查看完整描述

2 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

關鍵區別在于,goto支持它們的語言所用的語句允許無限制地跳轉到程序中的任何位置。雖然協程在表面上看起來很相似,但是卻有很大的不同。

協程允許暫停過程(及其所有上下文)并在某些位置恢復。因此,盡管協程yield在它們完成之前先暫停并控制其他過程,然后再恢復,但這些過程產生和恢復的時間點是提前知道的。

無法簡單地跳到過程中的任意行,相關過程必須等待在特定位置恢復。盡管這種控制傳遞的結構比通過goto它來結構化得多,但可以通過過度使用這種強大的機制來編寫令人困惑的代碼。再有,每種強大的編程語言功能都不都是這種情況嗎?;-)


查看完整回答
反對 回復 2021-03-22
  • 2 回答
  • 0 關注
  • 442 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號