为了测试并发goroutine,我在函数中添加了一行代码,以使其随机返回(最多1秒)

time.Sleep(rand.Int31n(1000) * time.Millisecond)

但是,当我编译时,我得到这个错误

.\Crawler.go:49:无效操作:rand.Int31n(1000)*time.毫秒(类型int32和time.Duration不匹配)

有什么主意吗?我如何乘以一个持续时间?

推荐答案

int32time.Duration是不同的类型.你需要把int32换成time.Duration:

time.Sleep(time.Duration(rand.Int31n(1000)) * time.Millisecond)

Go相关问答推荐

如何在Go中使用a-h/tempson渲染预格式的内容?

如何使用go从map.dbf map.prj map.shp map.shx中的任何文件中了解层名称

杜松子wine -戈尼克背景在 children 围棋例行公事中被取消

[0]Func()as";请勿比较哨兵类型

Go Regexp:匹配完整的单词或子字符串,或者根本不匹配

exec的可执行决议.命令+路径

你如何在 Golang 代码中测试 filepath.Abs​​ 失败?

Golang 中的泛型类型转换

如果值为 false,gRPC 不返回布尔值

Get 请求在 Thunder 客户端/Postman 中返回数据,但在 Golang 代码中给出空白数据

我在 go 中制作的递归函数有什么问题?

为什么 reflect.TypeOf(new(Encoder)).Elem() != reflect.TypeOf(interfaceVariable)?

为什么此代码在运行命令 error="exec: not started" 时出现错误?

在我的情况下,如何以正确的方式测试方法?

当有多个同名包时如何在vscode中显示golang包完整路径?

为什么我不能使用来自 gocloak 中 Login() 的访问令牌在 KeyCloak 中创建新客户端?

K8s 算子读取原始数据

如何在循环中旋转图像以便在 golang 中创建 GIF?

Go lang - 惯用的默认后备

如何使用通用字段初始化匿名struct数组