临时变量的静态寿命?

时间:2019-07-31 12:31:35

标签: rust

我具有以下功能:

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

有没有办法实现我想要的,或者我在概念上错了?

0 个答案:

没有答案