我正在尝试计算10分钟前的时间.为什么我不能用变量进行计算(可用于for循环).见 -
package main
import (
"fmt"
"time"
)
func main() {
// the time now
fmt.Println(time.Now())
// the time 50 minutes ago - WORKS
diff := (60 - 10) * time.Minute
newTime := time.Now().Add(-diff)
fmt.Println(newTime)
// the time 50 minutes ago - DOESN'T WORKS!
i := 10
diff = (60 - i) * time.Minute
newTime = time.Now().Add(-diff)
fmt.Println(newTime)
}
Run Code Online (Sandbox Code Playgroud)
为什么diff = (60 - i) * time.Minute不起作用?这是我得到的错误 -
prog.go:20: invalid operation: (60 - i) * time.Minute (mismatched types int and time.Duration)
Run Code Online (Sandbox Code Playgroud)
对于Go Playground:https://play.golang.org/p/TJ03K0ULg2
非常感谢!
就像错误说的那样,你的类型不匹配.将整数结果转换为time.Duration:
diff = time.Duration(60-i) * time.Minute
Run Code Online (Sandbox Code Playgroud)