Go の睡眠時間の割合
質問:
なぜ次の Go は実行されるのかコードは小数点以下の期間だけ正常にスリープしますが、2 番目のコードは正常にスリープします。失敗しますか?
// Success s := time.Hour / 73.0 fmt.Println("sleeping: ", s) time.Sleep(s) // Failure d := 73.0 s := time.Hour / d fmt.Println("sleeping: ", s) time.Sleep(s) // Error: invalid operation: time.Hour / d (mismatched types time.Duration and float64)
答え:
違いは、各行の除数の型にあります:
s := time.Hour / time.Duration(d)
d := 73.5 s := time.Duration(float64(time.Hour) / d)
さらなる考慮事項:
以上がGo の `time.Sleep()` が定数型に基づいて小数部分の期間を異なる方法で処理するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。