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

Zis*_*Zis 4 for-loop mutable rust 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; }
Run Code Online (Sandbox Code Playgroud)

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

She*_*ter 13

您可能想要重新阅读有关可变性的The Rust Programming Language部分:

您也可以使用创建对它的引用&x,但是如果您想使用引用来更改它,则需要一个可变引用:

let mut x = 5;
let y = &mut x;
Run Code Online (Sandbox Code Playgroud)
fn main() {
    let mut array = [1, 2, 3];

    for x in &mut array {
        *x = 3;
    }
}
Run Code Online (Sandbox Code Playgroud)

也可以看看:


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