多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
从一个有缓冲的 channel 里读数据,当 channel 被关闭,依然能读出有效值。只有当返回的 ok 为 false 时,读出的数据才是无效的。 ``` func main() { ch := make(chan int, 5) ch <- 18 close(ch) x, ok := <-ch if ok { fmt.Println("received: ", x) } x, ok = <-ch if !ok { fmt.Println("channel closed, data invalid.") } //写入管道,会报错。panic: send on closed channel // ch <- 11 } ``` 运行结果: > received: 18 > channel closed, data invalid.