定时循环如何工作?

Raj*_*ngh 1 go

我正在学习golang,我刚刚了解了定时循环.但我不明白它是如何工作的?

for _ = range time.Tick(time.Second * 3) {
    fmt.Println("Ticking every 3 seconds")
}
Run Code Online (Sandbox Code Playgroud)

mko*_*iva 6

Tick返回一个<-chan Time通道,并在Go中循环遍历通道range,就像你在数组或地图上循环一样,没问题.循环遍历某个通道时,循环内的代码将在该通道的每个recieve通道上执行,在您的示例中,每隔3秒执行一次.该通道关闭后,循环终止.

https://tour.golang.org/concurrency/4