中級 › move クロージャに取り込んだ値をクロージャの外で使うと E0382 になる › パターン3
move クロージャに取り込んだ値をクロージャの外で使うと E0382 になる
moveを付けたクロージャは、参照する変数の所有権を丸ごと取り込みます。
1 fn main() { 2 let city = String::from("osaka"); 3 let show_city = ________ || println!("city: {}", city); ^ 4 show_city(); 5 println!("{}", city); 6 }
error[E0382]: borrow of moved value: `city`
空欄を埋めて実行を通す
クロージャの外側でも変数を使い続けたい場合は、参照として借用させるだけで十分な場合が多いです。
次の問題