您现在的位置是:网站首页> 编程资料编程资料
golang判断chan channel是否关闭的方法_Golang_
2023-05-26
398人已围观
简介 golang判断chan channel是否关闭的方法_Golang_
本文实例讲述了golang判断chan channel是否关闭的方法。分享给大家供大家参考,具体如下:
群里有朋友问,怎么判断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)
}
}
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)
}
}
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实现unicode转换为字符串string的方法_Golang_
- go语言if/else语句简单用法示例_Golang_
- Go语言中使用flag包对命令行进行参数解析的方法_Golang_
- Go语言展现快速排序算法全过程的思路及代码示例_Golang_
- 深入解析快速排序算法的原理及其Go语言版实现_Golang_
- 举例讲解Go语言中函数的闭包使用_Golang_
- 剖析Go编写的Socket服务器模块解耦及基础模块的设计_Golang_
- 服务器端Go程序对长短链接的处理及运行参数的保存_Golang_
- Ubuntu下安装Go语言开发环境及编辑器的相关配置_Golang_
- Go语言编程入门超级指南_Golang_
