Rust中运行时初始化的全局常量?

6

是否可以定义一个在运行时开始时计算出值的全局常量,类似于以下内容:

static START_TIME: time::Timespec = time::get_time();

如果可能的话。静态和常量声明需要编译时值(常量中的调用仅限于结构体和枚举构造函数),而let不能放在函数外面(错误:预期项,找到`let`)。
1个回答

8

我认为类似于lazy_static这样的东西可以帮助解决这个问题。


1
自从三年前回答这个问题以来...仍然没有更好的方法吗?我不敢相信Rust不能在不使用外部crate的情况下实现这一点。 - Fusion
2
@Fusion,现在有const fns可以处理一定数量的情况。在夜间版本中,有https://doc.rust-lang.org/std/lazy/struct.SyncLazy.html。 - nqe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接