当我尝试打印时:
fmt.Println(c <-x)
在下面的代码块中的for循环之前,查看“ c <-x”的计算结果,它得到了错误消息:
./select.go:7:发送语句c <-x用作值;使用select进行非阻塞发送
如果发送操作成功,“ c <-x”的评估结果是否为true?以及为什么Go只允许您在select语句内的case语句内使用send语句的值(即“ c <-x”的值)?
func fibonacci(c, quit chan int) {
x, y := 1, 1
for {
select {
case c <- x:
x, y = y, x + y
case <-quit:
fmt.Println("quit")
return
}
}
}
谢谢
相关分类