我正在尝试编写一个程序,该程序会在十进制数的随机时间间隔内暂停。
这是不工作的程序:
package main
import (
"fmt"
"math/rand"
"time"
)
var test int
func main() {
intervalGenerate()
}
func intervalGenerate() {
var randint float64
rand.Seed(time.Now().UnixNano())
randInterval := randFloats(3, 7, 1)
randint = randInterval[0]
duration := time.Duration(randint) * time.Second
fmt.Println("Sleeping for", duration)
time.Sleep(duration)
fmt.Println("Resuming")
}
func randFloats(min, max float64, n int) []float64 {
res := make([]float64, n)
for i := range res {
res[i] = min + rand.Float64()*(max-min)
}
return res
}
目前生成的随机数介于 3 和 7(包括小数)之间,但 Sleep 会四舍五入到最接近的整数。
据我了解,这失败的原因是因为Sleep需要Duration,这是一个Int64:
func Sleep(d Duration)
有没有办法让程序休眠几分之一秒?
去游乐场: https: //play.golang.org/p/z-dnDBnUfxr
狐的传说
相关分类