通知接收方没有更多数据了
ch := make(chan int)
go func() {
for i := 0; i < 5; i++ {
ch <- i
}
close(ch) // 生产者发完了,通知接收者
}()
for v := range ch {
fmt.Println(v) // 接收者循环读取直到 channel 被关闭
}
range ch 会在 channel 被关闭且数据读完后自动退出
如果不关闭 channel,接收者会输入内容之后永远阻塞,报
goroutine 1 [chan receive]:
main.main()
/Users/bot/GolandProjects/test/main.go:12 +0xbc
exit status 2
评论