我试过了:
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; }
这些都不起作用;我应该怎么做?
答案 0 :(得分:10)
您可能需要重新阅读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;
}
}
另见:
请注意,您的变量不是矢量。这是一个数组。