如何在for循环中进行可变借用?

时间:2016-09-21 17:17:59

标签: for-loop rust mutable borrowing

我试过了:

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; }

这些都不起作用;我应该怎么做?

1 个答案:

答案 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;
    }
}

另见:

请注意,您的变量不是矢量。这是一个数组。