中級 › move クロージャに取り込んだ値をクロージャの外で使うと E0382 になる › パターン4
move クロージャに取り込んだ値をクロージャの外で使うと E0382 になる
moveを付けたクロージャは、参照する変数の所有権を丸ごと取り込みます。
1 fn main() { 2 let label = String::from("final"); 3 let show_label = ________ || println!("label: {}", label); ^ 4 show_label(); 5 println!("{}", label); 6 }
error[E0382]: borrow of moved value: `label`
空欄を埋めて実行を通す
moveは主にスレッドなど、クロージャが元のスコープより長く生きる場面で必要になります。
次の問題