首页 > time.Add为什么会编译不通过

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更合适。

【热门文章】
【热门文章】