上級 › E0597: does not live long enough の原因と直し方 › パターン4
E0597: does not live long enough の原因と直し方
ブロックの中で作った値への参照を、そのブロックの外に持ち出そうとするとE0597エラーになります。
1 fn main() { 2 let outer_id = 7; 3 let r; 4 { 5 let inner_id = 3; 6 r = _________; ^ 7 } 8 println!("{}", r); 9 }
error[E0597]: `inner_id` does not live long enough
空欄を埋めて実行を通す
外側で宣言されたouter_idはmain関数の終わりまで生きるので、参照を持ち出しても安全です。
次の問題