📜  Golang 中的 time.NewTicker()函数示例

📅  最后修改于: 2021-10-24 13:14:09             🧑  作者: Mango

在 Go 语言中,时间包提供了确定和查看时间的功能。 Go 语言中的NewTicker()函数用于输出包含通道的新 Ticker,以便以持续时间参数指定的周期传输时间。有助于设置时间间隔或丢弃自动收报机的滴答声,以弥补接收速度慢的问题。在这里,持续时间 ‘d’ 必须大于零,否则会发生恐慌错误。并且您可以通过使用 Stop() 方法终止自动收报机以释放相关资源。而且,这个函数是在time包下定义的。在这里,您需要导入“time”包才能使用这些功能。

句法:

func NewTicker(d Duration) *Ticker

这里,“d”是持续时间,*Ticker 是指向 Ticker 的指针。其中,Ticker 用于保存一个通道,该通道以间隔提供时钟的“滴答”。

返回值:它返回一个包含频道的新 Ticker。

示例 1:

// Golang program to illustrate the usage of
// time.NewTicker() function
  
// Including main package
package main
  
// Importing fmt and time
import "fmt"
import "time"
  
// Calling main
func main() {
  
    // Calling NewTicker method
    d := time.NewTicker(2 * time.Second)
  
    // Creating channel using make
    // keyword
    mychannel := make(chan bool)
  
    // Calling Sleep() methpod in go
    // function
    go func() {
        time.Sleep(7 * time.Second)
  
        // Setting the value of channel
        mychannel <- true
    }()
  
    // Using for loop
    for {
  
        // Select statement
        select {
  
        // Case statement
        case <-mychannel:
            fmt.Println("Completed!")
            return
  
        // Case to print current time
        case tm := <-d.C:
            fmt.Println("The Current time is: ", tm)
        }
    }
}

输出:

The Current time is:  2020-04-08 14:54:20.143952489 +0000 UTC m=+2.000223531
The Current time is:  2020-04-08 14:54:22.143940032 +0000 UTC m=+4.000211079
The Current time is:  2020-04-08 14:54:24.143938623 +0000 UTC m=+6.000209686
Completed!

在这里,for 循环用于打印当前时间,直到循环停止,并且在代码中指定的“滴答”之后的固定间隔之后打印此时间。这里是 2 秒。因此,当前时间在 2 秒的固定间隔后打印在上面。在这里,代码必须在 3 次后停止,因为限制是 7 秒,并且在第三次滴答后只剩下 1 秒。