0
time::Duration
のような構造体のグローバル定数を指定することはできますか?`time :: Duration`のようにstructのグローバル定数を指定することはできますか?
const DELAY_TIME: time::Duration = ???
...
thread::sleep(DELAY_TIME);
time::Duration
のような構造体のグローバル定数を指定することはできますか?`time :: Duration`のようにstructのグローバル定数を指定することはできますか?
const DELAY_TIME: time::Duration = ???
...
thread::sleep(DELAY_TIME);
Duration
は、コンパイル時に計算することができますので、あなたは2つのオプションがあります。
u64
とu32
ているので、簡単に)
lazy_static
のDuration
(動的割り当て、アトミックロック、および従属クレートが必要です。ここでは推奨しません)。は、ここで最初のオプションを行う方法は次のとおりです。
use std::time::Duration;
use std::thread::sleep;
const DELAY_SECONDS: u64 = 1;
const DELAY_NANO_SECONDS: u32 = 0;
fn main() {
sleep(Duration::new(DELAY_SECONDS, DELAY_NANO_SECONDS));
}
私は 'Duration'構造体のフィールドはプライベートであるため、あなたはそのコンストラクタを使用しないことができると思うので、'の一部として使用することはできませんconst式。 – turbulencetoo
'Duration :: new'を使用しようとすると、このエラーが発生します:' error [E0015]:定数の呼び出しはstructとenumのコンストラクタに限定されています ' – turbulencetoo