首頁 > 後端開發 > Golang > 主體

為什麼我不能在 Go 中將 `time.Millisecond` 乘以 `int` ?

DDD
發布: 2024-11-12 08:57:02
原創
557 人瀏覽過

Why Can't I Multiply `time.Millisecond` by an `int` in Go?

與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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板