2016-09-21 45 views
1

我想:如何在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; } 

这些工作都没有;我该怎么做?

回答

7

您可能需要重新阅读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; 
    } 
} 

参见:


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

+0

谢谢。我完全错过了'for mut x in&(mut vec)'的无支架版本 – ZisIsNotZis