我有一个不带参数的函数,它生成并返回
Vec
,并且相应的结果总是相同的。我只想调用该函数一次,并将其结果存储在一个全局变量或常量中,程序中的所有函数都可以访问该变量或常量。我该怎么做?我的第一次尝试是试图定义
const
或A
static
,但不允许这样做:
error[E0015]: calls in statics are limited to struct and enum constructors
--> src/main.rs:2:30
|
2 | static ALL: Vec<Knowledge> = Knowledge::all();
| ^^^^^^^^^^^^^^^^
|
note: a limited form of compile-time function evaluation is available on a nightly compiler via `const fn`
--> src/main.rs:2:30
|
2 | static ALL: Vec<Knowledge> = Knowledge::all();
| ^^^^^^^^^^^^^^^^
使用
let
在一个函数之外也不能工作。我该怎么办?是的,错误消息说我可以每晚使用,但我不想这样做,我更喜欢使用规范版本的语言。