我具有以下功能:
fn load_data() -> Result<MyData> {
// ...
Ok(my_data)
}
我只想在程序执行期间调用一次此函数,然后将结果保存在static
变量中。
如果结果的类型为Option<MyData>
,那将是很好的选择,因此,消费者只需检查数据是否存在,无论其原因为何都不存在。
我提出了以下建议:
lazy_static! {
static ref DATA: Option<&'static MyData> = load_data().ok().as_ref();
}
但是,该行失败:
35 | static ref DATA: Option<&'static MyData> = load_data().ok().as_ref();
| ----------------^^^^^^^^^
| | returns a value referencing data owned by the current function
| |
| |
| temporary value created here
有没有办法实现我想要的,或者我在概念上错了?