golang - time.Add为什么会编译不通过
本文介绍了golang - time.Add为什么会编译不通过的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
先上代码 想打印一个小时以后的时间 ,但是编译报错了
package main
import (
"fmt"
"time"
)
func main() {
fmt.Println("60minuteslater", addtime(60))
}
func addtime(durat int) (result time.Time) {
now := time.Now()
result = now.Add(durat*time.Minute)
return result
}
go build 提示
invalid operation: durat * time.Minute (mismatched types int and time.Duration)
解决方案
time.Add(d Duration)
,很明显,入参是time.Duration
类型,它是int64
的别名。你的durat
也需要转成time.Duration
才行,就像这样:result = now.Add(time.Duration(durat) * time.Minute)
。
顺便说一句,durat
定义成int64
更合适。
这篇关于golang - time.Add为什么会编译不通过的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文