首页 > golang > go语言time.Add()方法使用变量作为参数报错:Cannot use xxx(type int) as the type Duration
2021
01-16

go语言time.Add()方法使用变量作为参数报错:Cannot use xxx(type int) as the type Duration

在使用time.Add()方法时,可以直接传入一个整数作为参数,如:

func main() {
    t := time.Now()
    fmt.Println(t)
    t = t.Add(10 * time.Millisecond)
    fmt.Println(t)
}

注意time.Add()方法会返回修改之后的时间,而不是直接在接收器上进行修改。

当想要用一个变量作为time.Add()方法的参数时,直接传入会报错:

func main() {
    t := time.Now()
    fmt.Println(t)
    a := 10
    // 报错:Cannot use 'a * time.Millisecond' (type int) as the type Duration
    t = t.Add(a * time.Millisecond)
    fmt.Println(t)
}

这时需要手动将变量a转换为time.Duration类型

func main() {
    t := time.Now()
    fmt.Println(t)
    a := 10
    // 正确
    t = t.Add(time.Duration(a) * time.Millisecond)
    fmt.Println(t)
}


本文》有 0 条评论

留下一个回复