中級 › for ループで Vec を直接回すと要素がムーブされる › パターン4
for ループで Vec を直接回すと要素がムーブされる
for x in vec のように所有権を持つVecを直接forに渡すと、内部でinto_iter()が呼ばれ各要素の所有権がムーブされます。
1 fn main() { 2 let labels = vec![String::from("m"), String::from("n")]; 3 for l in ______________ { ^ 4 println!("{}", l); 5 } 6 println!("{}", labels.len()); 7 }
error[E0382]: borrow of moved value: `labels`
空欄を埋めて実行を通す
参照付きのforは要素を&Stringとして借用するだけなので、ループの後もlabels自体は生きています。
次の問題