程序从通道打印错误的变量


package main
import "fmt"
func main() {
c := make(chan int, 5)
c <- 5
c <- 6
close(c)
fmt.Println(<-c)
}

上面的程序不应该打印6吗,因为它是发送到通道的最后一个值?

还有什么,可以从封闭通道打印/接收吗?

它打印5个

Golang通道为先进先出。这就是为什么5首先被打印出来的原因。

编辑:关闭通道表示不再向其发送数据。

"如果通道关闭,您仍然可以读取数据。但你不能发送新数据。此程序在关闭频道,这是有效的。它只对发送";

https://golangr.com/close-channel/

最新更新