中級 › for ループで Vec を直接回すと要素がムーブされる › パターン2
for ループで Vec を直接回すと要素がムーブされる
for x in vec のように所有権を持つVecを直接forに渡すと、内部でinto_iter()が呼ばれ各要素の所有権がムーブされます。
1 fn main() { 2 let words = vec![String::from("x"), String::from("y")]; 3 for w in ______________ { ^ 4 println!("{}", w); 5 } 6 println!("{}", words.len()); 7 }
error[E0382]: borrow of moved value: `words`
空欄を埋めて実行を通す
所有権ごと消費するforループの後で元のVecを参照すると、E0382エラーになります。
次の問題