当一个chanel被关闭后,再取出不会阻塞,而是返回零值
package main
import "fmt"
func main() {
c := make(chan int, 5)
c <- 123
close(c)
fmt.Println(<-c)
fmt.Println(<-c)
}
输出
123
0
判断的方法是否关闭方法就是接收第二个参数,如下
package main
import "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