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

2020-05-07  本文已影响0人  猫尾草

在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)

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

上一篇 下一篇

猜你喜欢

热点阅读