下面的代碼是將值放入通道并接收和打印的代碼與您輸入的一樣多。我希望它可以工作,但發(fā)生了錯誤。package mainimport ( "fmt" "time")func main() { var ch chan int for i := 0; i < 3; i++ { go func(idx int) { ch <- (idx + 1) * 2 }(i) } fmt.Println("result:", <-ch) fmt.Println("result:", <-ch) fmt.Println("result:", <-ch) //do other work time.Sleep(2 * time.Second)}在操場上測試 - https://go.dev/play/p/FFmoSMheNfu
1 回答

收到一只叮咚
TA貢獻(xiàn)1821條經(jīng)驗 獲得超5個贊
您正在使用零通道。類型聲明還不夠,需要使用make來初始化通道。
ch := make(chan int)
https://go.dev/play/p/L1ewulPDYlS
有一集 justforfunc解釋了 nil 通道的行為方式以及它們有時有用的原因。
- 1 回答
- 0 關(guān)注
- 109 瀏覽
添加回答
舉報
0/150
提交
取消