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

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

選擇完成后,此 FOR 循環如何中斷

選擇完成后,此 FOR 循環如何中斷

Go
拉風的咖菲貓 2021-12-13 18:47:27
以下代碼等待“結果”通道為空,然后 DEFAULT 分支中斷到 Label DONE。現在的問題是:為什么這會破壞 FOR 循環?似乎 FOR 循環會繼續跳到 DEFAULT 并且永遠不會結束。是什么打破了 for 循環。輸出如下:中斷完成結束于...DONE:for {    select { // Nonblocking    case result := <-results:        fmt.Printf("%s:%d:%s\n", result.filename, result.lino,            result.line)    default:        fmt.Println("Break DONE")        break DONE    }    fmt.Println("END Select")}fmt.Println("End For")
查看完整描述

3 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

break DONEgoto DONEC 或其他語言不同。標簽標記 for 循環,哪個break DONE語句在執行時將終止。它不會跳轉到DONE標簽,它會終止標有DONE標簽的 for 循環。當您想從嵌套循環中中斷或者像在您的情況下一樣從 select 內部終止循環時,標記的中斷非常有用。沒有標簽中斷只會終止選擇。


查看完整回答
反對 回復 2021-12-13
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

如果有一個標簽,它必須是一個封閉的“for”、“switch”或“select”語句的標簽,它就是執行終止的那個。

https://golang.org/ref/spec#Break_statements

此示例中的標簽明確標記要終止的“for”。


查看完整回答
反對 回復 2021-12-13
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

使用break關鍵字終止執行,當你調試這段代碼時,默認選項會被選中,然后break關鍵字執行停止程序。程序將無法進入 DONE 標簽


查看完整回答
反對 回復 2021-12-13
  • 3 回答
  • 0 關注
  • 330 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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