Golang time.Tick()函数的应用及示例
在Go语言中,time包提供了决定和查看时间的功能。在Go语言中,Tick()函数是NewTicker函数的实用包装器,它只允许访问滴答声通道。此外,对于不需要关闭Ticker的客户端,Tick方法非常有用。如果所规定的时间间隔小于或等于0,则Tick方法将返回nil。此外,该函数属于time包。因此,您需要导入“time”包才能使用这些函数。
语法:
func Tick(d Duration) <-chan Time
这里,d是Ticker进行滴答时间的持续时间,chan是滴答通道。
注意:Tickers用于在指定时间间隔内定期执行某些操作。
返回值:在规定的时间间隔之后,它将返回当前日期和实际时间。如果d <= 0,则返回nil。
示例1:
// Golang程序演示Tick()函数的用法
// 包含主要包
package main
//导入fmt和time
import (
"fmt"
"time"
)
//定义UTC时间
func UTCtime() string {
return ""
}
//主函数
func main() {
//使用range关键字调用Tick方法
for tick := range time.Tick(3 * time.Second) {
//打印UTC时间和日期
fmt.Println(tick, UTCtime())
}
}
输出:
2020-04-02 03:16:22.27131713 +0000 UTC m=+3.000249815
2020-04-02 03:16:25.271334601 +0000 UTC m=+6.000267330
2020-04-02 03:16:28.271312516 +0000 UTC m=+9.000245191
2020-04-02 03:16:31.271369788 +0000 UTC m=+12.000302595
2020-04-02 03:16:34.271309254 +0000 UTC m=+15.000241952
2020-04-02 03:16:37.271324182 +0000 UTC m=+18.000256858
2020-04-02 03:16:40.271322789 +0000 UTC m=+21.000255504
2020-04-02 03:16:43.271295568 +0000 UTC m=+24.000228305……等等
在此处,我们使用了range关键字来迭代通道。在此处,当前日期和时间会在规定时间间隔之后返回。因此,输出结果会在不同的运行中有所不同。此外,在此循环中,只有当您主动终止它时才会停止。
示例2:
// Golang程序演示Tick()函数的用法
// 包含主要包
package main
//导入fmt和time
import (
"fmt"
"time"
)
//定义UTC时间
func UTCtime() string {
return ""
}
//主函数
func main() {
//使用range关键字调用Tick方法
for tick := range time.Tick(-1 * time.Second) {
//打印UTC时间和日期
fmt.Println(tick, UTCtime())
}
}
输出:
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan receive (nil chan)]:
main.main()
/home/runner/SociableInsubstantialCommunication/main.go:23 +0x149
在上面的代码中,所规定的时间间隔为负数,因此返回nil并出现错误。