求问:for-range 在循环 channel 的时候,在 channel 里面没有数据的时候,为什么没有结束循环

ArdenDare · · 1644 次点击
for range是一直阻塞等待的。没有内置什么超时多少s就结束。
#4
更多评论
close(ch)到这里才结束for range
#1
比如我上面的程序,因为 sleep 了 5 秒钟,我观察到,for range 也会等待 sleep 5 秒之后,再继续输出后面的 7、8、9。感觉这个现象很神奇。也就是说,for range 会等待 channel 关闭,才会退出吗?
#2