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)
阅读 5.7k
1 个回答

time.Add(d Duration),很明显,入参是time.Duration类型,它是int64的别名。你的durat也需要转成time.Duration才行,就像这样:result = now.Add(time.Duration(durat) * time.Minute)
顺便说一句,durat定义成int64更合适。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题