NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
### 关闭channel * channel不想文件一样需要经常去关闭,只有当你确实没有任何发送数据了,或者你想显示的结束range循环之类的, 才去关闭channel * 关闭channel后,无法向channel再发送数据(引发panic错误后导致接收立即返回零值) * 关闭channel后,可以继续向channel接收数据 * 对于nil channel,无论收发都会被阻塞 ~~~ ch := make(chan int) //创建一个有缓冲channel go func() { for i := 0; i < 5; i++ { ch <- i } close(ch) //不需要再写数据时,关闭channel }() //for { // //如果OK为true,说明管道没有关闭 // if value, ok := <-ch; ok == true { // fmt.Println(value) // } else { // break // } //} for value := range ch { //通过range遍历channel fmt.Println(value) } ~~~ ~~~ 0 1 2 3 4 ~~~