3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
Go規(guī)范說:
“break”語句終止同一函數(shù)內(nèi)最里面的“for”、“switch”或“select”語句的執(zhí)行。
在您的示例中,您只是脫離了 select 語句。如果您替換break
為一條return
語句,您將看到它正在運(yùn)行。

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
在您的示例代碼中, areturn似乎像 Pat 所說的那樣合適,但為了將來參考,您可以使用標(biāo)簽:
package main
import (
"fmt"
"time"
)
func main() {
done := time.After(1 * time.Millisecond)
numbers := make(chan int)
// Send to channel
go func() {
for n := 0; ; {
numbers <- n
n++
}
}()
readChannel:
for {
select {
case <-done:
break readChannel
case num := <-numbers:
fmt.Println(num)
}
}
// Additional logic...
fmt.Println("Howdy")
}
- 3 回答
- 0 關(guān)注
- 286 瀏覽
添加回答
舉報(bào)