为了账号安全,请及时绑定邮箱和手机立即绑定

第三次循环不明白

以下是我的理解,问题再第三次循环上没想通,求指导:

第一次循环走的是default是因为通道是空

第二次循环走的是case,因为第一次循环后插入了值通道有一个缓存,并未取出

第三次循环走的为什么还是case?通道虽然关闭里但是可以读我明白,可是通道的值在第二次循环被取出了,通道在第三次循环不应该是空嘛,如果为空为什么没走default?而是走了case,case不应该实在通道不为空的情况下可以走嘛??


求指导 !多谢!

正在回答

2 回答

<- ch4 应该是取出了值吧,可以去测试一下

0 回复 有任何疑惑可以回复我~

第二次通道的值不是被取出,只是被读取,里面还是有值,第三次因为通道关闭了无法读取

0 回复 有任何疑惑可以回复我~
#1

慕仰5549039 提问者

<-chan不应该是取出通道的值嘛,如果第二次只是被读取的话,不关闭通道的条件下,那应该第三次还可以读取出来,可是这发生了死锁诶。 我目前认为是第二次取出了,然后通道被关闭,这样第三次取出的是通道的零值,轮询进case,e,ok中e为零值也就是0,但是ok是false,所以第三次打印了end
2018-09-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

第三次循环不明白

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信