官方 package time 包:
// A Duration represents the elapsed time between two instants
// as an int64 nanosecond count. The representation limits the
// largest representable duration to approximately 290 years.
type Duration int64
注释翻译:
// 持续时间(Duration)表示两个瞬间之间经过的时间
// 作为int64纳秒计数。该表示限制了
// 最大可代表的持续时间约为290年。
type Duration int64
Duration 的使用场景之一:
time.Duration()返回值的单位是 ns(纳秒)
* time.Second 后可更换返回值的单位“纳秒”为“秒”
// 设置读取文件时超时时间为30s:
ReadTimeout := time.Duration(30) * time.Second
/*
对于 time.Duration() 个人测试和理解如下:
1. 测试 time.Duration()
(1)分别设置参数60和30
(2)time.Duration(60) 返回60纳秒
(3)time.Duration(30) 返回30纳秒
2. 测试 time.Second
(1)time.Second 返回1秒
3. “*” 运算符起到单位转换的作用 time.Duration()*time.Second
(1) time.Duration(60) * time.Second // 60ns * 1s
返回1m0s(1分钟0秒 = 60秒)
(2) time.Duration(30) * time.Second // 30ns * 1s
返回30s
个人理解:time.Duration(30) * time.Second
(1)把 time.Duration(30) * time.Second 拆开
(2)time.Duration(30) 的返回值实际是30纳秒
(3)此处 time.Second 相当于时间单位“秒”
(4) * 用于给返回值 30ns 更换单位
(5)“纳秒”强制更换为“秒”
(6)所以返回 30s
*/