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

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

在 Go 语言中,时间包提供了确定和查看时间的功能。 Go 语言中的NewTimer()函数用于创建一个新的 Timer,它将至少在持续时间“d”之后在其通道上传输实际时间。而且,这个函数是在time包下定义的。在这里,您需要导入“time”包才能使用这些功能。

句法:

func NewTimer(d Duration) *Timer

这里, *Timer是指向Timer的指针。

返回值:它返回一个通道,通知定时器必须等待多长时间。

示例 1:

// Golang program to illustrate the usage of
// NewTimer() function
  
// Including main package
package main
  
// Importing fmt and time
import (
    "fmt"
    "time"
)
  
// Main function
func main() {
  
    // Calling NewTimer method
    newtimer := time.NewTimer(5 * time.Second)
  
    // Notifying the channel
    <-newtimer.C
  
    // Printed after 5 seconds
    fmt.Println("Timer is inactivated")
}

输出:

Timer is inactivated

在这里,上面的输出在运行代码 5 秒后打印,因为在指定的时间之后,通道会被通知计时器已停用。

示例 2:

// Golang program to illustrate the usage of
// NewTimer() function
  
// Including main package
package main
  
// Importing fmt and time
import (
    "fmt"
    "time"
)
  
// Main function
func main() {
  
    // Calling NewTimer method
    newtimer := time.NewTimer(time.Second)
  
    // Notifying channel under go function
    go func() {
        <-newtimer.C
  
        // Printed when timer is fired
        fmt.Println("timer inactivated")
    }()
  
    // Calling stop method to stop the
    // timer before inactivation
    stoptimer := newtimer.Stop()
  
    // If the timer is stopped then the
    // below string is printed
    if stoptimer {
        fmt.Println("The timer is stopped!")
    }
  
    // Calling sleep method to stop the
    // execution at last
    time.Sleep(4 * time.Second)
}

输出:

The timer is stopped!

在上面的方法中,计时器在停用之前被停止,因为这里正在调用 stop 方法来停止计时器。最后,使用 sleep 方法退出程序。