golang中的select用于选择一个可用的chan,没有default情况下是堵塞的收发,又default情况下是非堵塞收发。
但要是case中存在关闭的chan呢?
该段程序会不断的循环输出 0 false。
func main() {
ch1 := make(chan int)
go func(){
close(ch1)
}()
time.Sleep(1*time.Second)
for{
select{
case v,ok := <-ch1:
fmt.Println("close", v, ok)
}
}
}