私は錆ブックの第二版を読んでいると私は、イテレータセクションに次のサンプルを見つけました:なぜコンパイラはforループに移動したイテレータが不変であると不平を言っていませんか?
let v1 = vec![1, 2, 3];
let v1_iter = v1.iter();
for val in v1_iter {
println!("Got: {}", val);
}
なぜコンパイラはv1_iter
が不変であることを文句ないのですか?この本は、forループがv1_iter
の所有権を持ち、舞台裏で可変にしていると言いますが、不変の変数を可変に変換できますか?
let v = vec![1,2,3];
let mut x = v;
x.push(0);
注意こと: