Avatar ·

如何在Go中将持续时间(time.Duration)乘以整数?

大家好!我刚开始学习Go,在使用time包时遇到了一个问题。我需要创建一个每隔N秒触发一次的定时器,其中N由用户以整数形式指定。

package main

import (
    "fmt"
    "time"
)

func main() {
    var n int
    fmt.Print("请输入间隔秒数:")
    fmt.Scan(&n)
    
    // 尝试乘以持续时间
    interval := time.Second * n  // 错误!
    fmt.Println(interval)
}

编译器报错:invalid operation: time.Second * n (mismatched types time.Duration and int)。我明白time.Second是time.Duration类型,而n是int类型,它们不能直接相乘。但如何正确创建一个以秒为倍数的间隔呢?在其他语言中,比如Python,我只需写datetime.timedelta(seconds=n)就能正常工作。在Go中,我遗漏了什么?

我