我正在嘗試計算 10 分鐘前的時間。為什么我不能用變量進行這個計算(可用于 for 循環)???-package mainimport ( "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)}為什么diff = (60 - i) * time.Minute不起作用?這是我得到的錯誤 -prog.go:20: invalid operation: (60 - i) * time.Minute (mismatched types int and time.Duration)去游樂場:https : //play.golang.org/p/TJ03K0ULg2
2 回答

慕勒3428872
TA貢獻1848條經驗 獲得超6個贊
就像錯誤所說的那樣,您的類型不匹配。將整數結果轉換為 a time.Duration
:
diff = time.Duration(60-i) * time.Minute

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
time.Duration實際上是類型int64,所以如果你想使用變量來制作你想要的東西,只需將變量聲明為time.Duration,就像這樣:
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!
var i time.Duration
diff = (60 - i) * time.Minute
newTime = time.Now().Add(-diff)
fmt.Println(newTime)
}
- 2 回答
- 0 關注
- 167 瀏覽
添加回答
舉報
0/150
提交
取消