與time.Millisecond * int 的混淆
在Go 中,運算子需要相同類型的運算元,除非運算涉及移位或無類型常數。否則,如果一個操作數是無類型常數(例如整數文字),它將轉換為另一個操作數的類型。
考慮以下範例:
// Works because 1000 is an untyped constant and is converted to `time.Duration`. time.Sleep(1000 * time.Millisecond)
但是,以下程式碼失敗:
// Fails because `v` is an `int` and `time.Duration` are different types. var v = 1000 time.Sleep(v * time.Millisecond)
要解決此問題,請將int 變數v 轉換為time.Duration,然後再在Sleep函數中使用它:
time.Sleep(time.Duration(v) * time.Millisecond)
此轉換使操作數類型相同,允許操作成功。
以上是為什麼我不能在 Go 中將 `time.Millisecond` 乘以 `int` ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!