在 Go 语言中,时间包提供了确定和查看时间的功能。 Go 语言中的Tick()函数是NewTicker函数的实用程序包装器。它只允许访问滴答通道。此外, Tick对不需要关闭 Ticker 的客户很有帮助。并且Tick方法在声明的持续时间小于或等于0时返回nil。而且,这个函数是在time包下定义的。在这里,您需要导入“time”包才能使用这些功能。
句法:
func Tick(d Duration) <-chan Time
这里, d是股票报价的持续时间, chan是报价渠道。
注意:股票代码用于在规定的时间间隔内频繁地做某事。
返回值:每隔一定时间返回当前日期和实际时间。如果 d <= 0,则返回 nil。
示例 1:
// Golang program to illustrate the usage of
// Tick() function
// Including main package
package main
// Importing fmt and time
import (
"fmt"
"time"
)
// Defining UTCtime
func UTCtime() string {
return ""
}
// Main function
func main() {
// Calling Tick method
// using range keyword
for tick := range time.Tick(3 * time.Second) {
// Prints UTC time and date
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......so on
在这里,我们使用了 range 关键字来迭代通道。在这里,当前日期和时间在固定的时间间隔后返回。因此,在不同的运行中输出是不同的。在这里循环不会停止,直到您终止它。
示例 2:
// Golang program to illustrate the usage of
// Tick() function
// Including main package
package main
// Importing fmt and time
import (
"fmt"
"time"
)
// Defining UTCtime
func UTCtime() string {
return ""
}
// Main function
func main() {
// Calling Tick method using range
// keyword
for tick := range time.Tick(-1 * time.Second) {
// Prints UTC time and date
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 并发生错误。