从品牌网站建设到网络营销策划,从策略到执行的一站式服务
本篇文章给大家分享的是有关Golang中channel如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了南华免费建站欢迎大家使用!
关闭2次
代码如下:
ch := make(chan bool)
close(ch)
close(ch) // 这样会panic的,channel不能close两次
读取的时候channel提前关闭了
代码如下:
ch := make(chan string)
close(ch)
i := <- ch // 不会panic, i读取到的值是空 "", 如果channel是bool的,那么读取到的是false
向已经关闭的channel写数据
代码如下:
ch := make(chan string)
close(ch)
ch <- "good" // 会panic的
判断channel是否close
复制代码
i, ok := <- ch
if ok {
println(i)
} else {
println("channel closed")
}
for循环读取channel
代码如下:
for i := range ch { // ch关闭时,for循环会自动结束
println(i)
}
防止读取超时
代码如下:
select {
case <- time.After(time.Second*2):
println("read channel timeout")
case i := <- ch:
println(i)
}
防止写入超时
代码如下:
// 其实和读取超时很像
select {
case <- time.After(time.Second *2):
println("write channel timeout")
case ch <- "hello":
println("write ok")
}
以上就是Golang中channel如何使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图