参考答案
结论:向已关闭channel发送数据会引发panic;从已关闭channel接收,若缓冲区有数据则先读出,随后返回零值且ok=false;重复关闭同样panic。原理:channel关闭后运行时禁止发送,接收通过hchan结构判断closed字段,有缓冲取数据,无则返零值,第二个返回值指示是否成功读取。示例:ch:=make(chan int,1); close(ch); <-ch正常;再close(ch) panic;v,ok:=<-ch后ok为false。建议在发送方关闭,用sync.Once避免多发送者重复关闭。