golang
从关闭的channel中仍能读到东西,也不报错,挺坑。
func main() {
ch := make(chan string, 3)
ch <- "1"
ch <- "2"
ch <- "3"
close(ch)
for i := 0; i < 10; i++ {
content := <-ch
fmt.Printf("%s\n", content)
}
}
如上
channel已经关了, 还能读出来空串…
func main() {
ch := make(chan struct{}, 3)
ch <- struct{}{}
ch <- struct{}{}
close(ch)
for i := 0; i < 10; i++ {
content := <-ch
fmt.Printf("%s\n", content)
}
}
向关闭的channel写入数据会引发panic