
正文
Go语言如何判断一个chan被关闭
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
当一个chanel被关闭后,再取出不会阻塞,而是返回零值
package mainimport "fmt"func main() {
c := make(chan int, 5)
c <- 123
close(c) fmt.Println(<-c)
fmt.Println(<-c)
}
输出
123
0
判断的方法是否关闭方法就是接收第二个参数,如下
package mainimport "fmt"func main() {
c := make(chan int, 10)
c <- 123
close(c) var res int
var ok bool res, ok = <-c
fmt.Println(res, ok) res, ok = <-c
fmt.Println(res, ok) //此时ok为false
}
输出
123 true
0 false







