在 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 方法退出程序。