Code Fix

中級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`

空欄を埋めて実行を通す

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

move クロージャに取り込んだ値をクロージャの外で使うと E0382 になる

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

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

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