go中的事件对象time.Duration

const (
	Nanosecond  Duration = 1
	Microsecond          = 1000 * Nanosecond
	Millisecond          = 1000 * Microsecond
	Second               = 1000 * Millisecond
	Minute               = 60 * Second
	Hour                 = 60 * Minute
)

go的time对象是以纳秒来开始的,
1秒=1000毫秒(ms) 1秒=1000000 微秒(μs) 1秒=1000000000 纳秒(ns)
使用go中的time对象就可以直接指定
1s >>> 1 *time.Second
1ms >> 1 * time.Millisecond
以此类推,

但再函数中使用其他变量代替1进行事件对象指定的时候,编译会出错,编译不过去,提示time.Duration对象不适用


time.Sleep(1000 * time.Millisecond)
这样写是没有问题的

var i = 1000
time.Sleep(i * time.Millisecond)
用i来代替就报错

解决:

var i = 1000
time.Sleep(time.Duration(i) * time.Millisecond)
原文地址:https://www.cnblogs.com/cizao/p/11753574.html