自定义类型及转化

2017-10-11  本文已影响0人  zzjack
time.Sleep(300*time.Second)

这样的代码是没问题的。但是当300成为变量值的时候,上述写法就会出现异常。

sleep := int64(300)
time.Sleep(sleep*time.Second)
//ERROR :mismatched types time.Duration and int

然后我跑去看源码,我发现time.Duration是type Duration int64,这说明Duration是个自定义的类型,需要进行类型转化。

a := time.Duration(sleep)
reflect.TypeOf(a)
// time.Duration

这样就可以把sleep转化为time.Duration类型了。
所以最初的代码做如下改动就不会报错了。

sleep := time.Duration(int64(300))
time.Sleep(sleep*time.Second)
上一篇下一篇

猜你喜欢

热点阅读