是否可以为结构指定一个全局常量,如`time :: Duration`?

时间:2017-10-23 19:46:40

标签: rust

是否可以为像time::Duration

这样的结构指定全局常量
const DELAY_TIME: time::Duration = ???
...
thread::sleep(DELAY_TIME);

1 个答案:

答案 0 :(得分:0)

因为Duration可以在编译时计算,所以有两个选项:

  • 将参数存储到构造函数中(很简单,因为它们只是u64u32
  • Duration存储在lazy_static中(需要动态分配,原子锁定和依赖包。此处不推荐使用。)

以下是第一个选项:

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));
}