go使用变量创建time.Duration类型

在golang中,很多方法接收的时间参数都是time.Duration类型。例如sleep方法,使用

time.Sleep(1 * time.Second)

其中1 * time.Second的结果就是time.Duration类型。
但如果想把1换成一个int变量,例如

var num = int(1)
time.Sleep(num * time.Second)

就会报错mismatched types Duration and int,意思是num * time.Second是int类型而不是time.Duration类型。看起来有点滑稽。
解决办法是先转换int为time.Duration类型:

var num = int(1)
time.Sleep(time.Duration(num) * time.Second)

不理解为什么会设计成这样。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容