在使用Go编写代码后,可以使用以下命令将.go源代码文件编译成可执行文件:
go build 文件名.go
例如,如果源代码文件名为main.go,可以使用以下命令生成可执行文件:
go build main.go
如果编译成功,将会在当前目录生成一个同名的可执行文件。
./文件名
例如,如果生成的可执行文件名为main,可以使用以下命令运行:
./main
在Go语言中,可以使用time
包来实现定时器功能。
以下是一个使用Go编写的定时器代码:
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.NewTicker(1 * time.Second) // 创建一个每秒触发一次的定时器
go func() {
for range ticker.C { // 定时器的Channel每秒接收到一个时间,利用for循环来不断接收并处理时间
fmt.Println("定时器触发")
}
}()
time.Sleep(5 * time.Second) // 等待5秒钟,观察定时器的效果
ticker.Stop() // 停止定时器
fmt.Println("定时器停止")
}
上述代码中,使用time.NewTicker
函数创建了一个每秒触发一次的定时器,并通过ticker.C
接收定时器触发的时间。然后,使用一个匿名函数在新的goroutine中,通过range
循环从ticker.C
中接收定时器触发的时间,并处理相应的逻辑。
通过time.Sleep
函数,让主goroutine等待5秒钟,以便观察定时器的效果。最后,我们使用ticker.Stop
方法停止定时器,并输出相应的信息。
在time.Sleep
处等待期间,主goroutine将会阻塞,所以触发的定时器事件只会在主goroutine休眠结束后才会停止。