下面的代码是将值放入通道并接收和打印的代码与您输入的一样多。我希望它可以工作,但发生了错误。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贡献1821条经验 获得超4个赞
您正在使用零通道。类型声明还不够,需要使用make来初始化通道。
ch := make(chan int)
https://go.dev/play/p/L1ewulPDYlS
有一集 justforfunc解释了 nil 通道的行为方式以及它们有时有用的原因。
- 1 回答
- 0 关注
- 81 浏览
添加回答
举报
0/150
提交
取消