我正在尝试编写一个程序,该程序会在十进制数的随机时间间隔内暂停。这是不工作的程序:package mainimport ( "fmt" "math/rand" "time")var test intfunc 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
1 回答
狐的传说
TA贡献1804条经验 获得超3个赞
根据您需要的粒度级别使用 time.Millisecond、time.Microsecond 或 time.Nanosecond。
// sleep for 2.5 seconds
milliseconds := 2500
time.Sleep(time.Duration(milliseconds) * time.Millisecond)
- 1 回答
- 0 关注
- 159 浏览
添加回答
举报
0/150
提交
取消