golang判断chanchannel是否关闭的方法

本文实例讲述了golang判断chan channel是否关闭的方法。分享给大家供大家参考,具体如下:

创新互联公司主要从事成都网站建设、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务孙吴,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575

群里有朋友问,怎么判断chan是否关闭,因为close的channel不会阻塞,并返回类型的nil值,会导致死循环.在这里写个例子记录一下,并且分享给大家

如果不判断chan是否关闭

Notice: 以下代码会产生死循环

复制代码 代码如下:
package main
import (
    "fmt"
)
func main() {
    c := make(chan int, 10)
    c <- 1
    c <- 2
    c <- 3
    close(c)
    for {
        fmt.Println(<-c)
    }
}

判断短chan是否关闭

复制代码 代码如下:
package main
import (
    "fmt"
)
func main() {
    c := make(chan int, 10)
    c <- 1
    c <- 2
    c <- 3
    close(c)
    for {
        i, isClose := <-c
        if !isClose {
            fmt.Println("channel closed!")
            break
        }
        fmt.Println(i)
    }
}

希望本文所述对大家Go语言程序设计有所帮助。


网站题目:golang判断chanchannel是否关闭的方法
本文链接:http://www.hxwzsj.com/article/pigspe.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 外贸网站建设 成都网站建设公司 网站建设方案 成都企业网站制作 成都网站设计 定制网站建设 定制网站设计 企业网站制作 阿坝网站设计 成都网站建设 成都商城网站建设 移动手机网站制作 成都网站建设 手机网站制作 广安网站设计 教育网站设计方案 外贸网站设计方案 成都响应式网站建设 成都网站设计 网站建设方案 重庆企业网站建设 成都网站制作