Code Fix

中級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 クロージャに取り込んだ値をクロージャの外で使うと E0382 になる

取り込まれた後にクロージャの外側でその変数を使おうとするとE0382エラーになります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)