fn main() {
let float = 1.0;
let var: &f64 = {
let inner_option = Some(float);
inner_option.as_ref().unwrap()
};
dbg!(var);
}
你得到這個錯誤
error[E0597]: `inner_option` does not live long enough
--> src/main.rs:7:9
|
4 | let var: &f64 = {
| --- borrow later stored here
...
7 | inner_option.as_ref().unwrap()
| ^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough
8 | };
| - `inner_option` dropped here while still borrowed
float從 Option 訪問時,如何獲得對更長壽變數的參考inner_option?
uj5u.com熱心網友回復:
呼叫Some(float)將復制將在該范圍結束時銷毀的生成 a,并使參考無效float。Option<f64>
如果您要改為Option<&f64>僅參考 float,那么它將起作用:
fn main() {
let float = 1.0;
let var: &f64 = {
let inner_option = Some(&float);
inner_option.unwrap()
};
dbg!(var);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/486435.html
