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/