为了账号安全,请及时绑定邮箱和手机立即绑定

按整数的分数休眠

按整数的分数休眠

Go
牛魔王的故事 2022-07-11 15:25:18
我正在尝试编写一个程序,该程序会在十进制数的随机时间间隔内暂停。这是不工作的程序: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)


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信