Golang time.Tick()函数的应用及示例

Golang time.Tick()函数的应用及示例

在Go语言中,time包提供了决定和查看时间的功能。在Go语言中,Tick()函数是NewTicker函数的实用包装器,它只允许访问滴答声通道。此外,对于不需要关闭Ticker的客户端,Tick方法非常有用。如果所规定的时间间隔小于或等于0,则Tick方法将返回nil。此外,该函数属于time包。因此,您需要导入“time”包才能使用这些函数。

语法:

func Tick(d Duration) <-chan Time
Go

这里,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())
    }
} 
Go

输出:

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……等等
Go

在此处,我们使用了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())
    }
} 
Go

输出:

fatal error: all goroutines are asleep - deadlock!

goroutine 1 [chan receive (nil chan)]:
main.main()
    /home/runner/SociableInsubstantialCommunication/main.go:23 +0x149
Go

在上面的代码中,所规定的时间间隔为负数,因此返回nil并出现错误。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册