![1.png](https://static.studygolang.com/190925/407fcf34e1c1afab30329d7b5d6fbbf6.png)
这段代码一直打印deault,不会进入 case time := <-Delay.C:
![2.png](https://static.studygolang.com/190925/0ecd86b5013fa1c7a3141efa08eaab63.png)
把select中的default干掉,就会打印时间。
请问这个是啥原因啊?
没看出楼主想要做什么,如果是测试的select的特性的话,可以参考下我补充的这段代码
for{
select{
case time := <-Delay.C:
fmt.Println(time)
Delay.Reset(times)
default:
fmt.Println("default")
time.Sleep(time.Millisecond * 500)
}
}
#8
更多评论
很正常啊。。default本来就是这样用的啊。。上面case没有匹配的立即执行default里面的啊。
这个一般用于那种不想阻塞等待chan的场景,及chan里面有就处理,没有就走default啊。
#1
问题不在default这里 应该是你的 Delay.Reset(times) 搞的鬼 你把这个去掉试试
如果你想 实现一秒打印一次 那你应该用这个
```
time.NewTicker(times)
```
#2