多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ## **一:channel的关闭** 使用内置函数close可以关闭channel,当channel关闭后,就不能在向channel写入数据了,但是任然可以从该channel读取数据 ![](https://img.kancloud.cn/1f/bc/1fbcd67bbb88474346dda823d9eb375a_1209x441.png) **运行结果** ``` panic: send on closed channel goroutine 1 [running]: main.main() /Users/wang/go/src/awesomeProject/lianxi/main/channel_demo10_lianxi06.go:11 +0xb5 ``` 很显然不能写入了,报了panic: send on closed channel **下面我们尝试读取** ![](https://img.kancloud.cn/31/ab/31aba77ac694bfe441241856e4bbcd6a_1209x526.png) **运行结果** ``` sum = 1000 sum1 = 100 ``` <br> <br> ## **二:channel的遍历** channel支持for——range的方式进行遍历,请注意两个细节 * 在遍历时,如果channel没有关闭,则回出现deadlock的错误 * 在遍历时,如果channel已经关闭,则会正常遍历数据,遍历完后,就会退出遍历。 ![](https://img.kancloud.cn/2a/9e/2a9e995b3e368ceb50535ebee6bc5308_1209x484.png)