如何在for循环中执行可变借入?
问题描述:
let mut vec = [1,2,3];
for mut x in &vec { *x=3; }
for mut &x in &vec { x=3; }
for mut *x in &vec { x=3; }
for mut x in mut &vec { *x=3; }
for mut x in &(mut vec) { *x=3; }
这些工作都没有;我该怎么做?
答
您可能需要重新阅读The Rust Programming Language节上mutability:
您还可以创建对它的引用,使用
&x
,但如果你想 使用参考来改变它,你将需要一个可变参考:let mut x = 5; let y = &mut x;
fn main() {
let mut array = [1, 2, 3];
for x in &mut array {
*x = 3;
}
}
参见:
请注意,您的变量是不是矢量。它是一个数组。
谢谢。我完全错过了'for mut x in&(mut vec)'的无支架版本 – ZisIsNotZis