如何将一个可变函数参数作为参数传递给另一个函数?

时间:2015-11-21 14:44:35

标签: rust

为什么Rust会阻止此代码编译,错误:"无法将不可变局部变量arr作为可变的"?如何将向量作为可变引用传递给另一个函数?

let mut vec = vec![0];

fn bar(vec: &mut Vec<i32>) {
    // some code here
}

fn foo(vec: &mut Vec<i32>) {
    bar(&mut vec);
}

foo(&mut vec);

1 个答案:

答案 0 :(得分:7)

在这种情况下,您无需使用&mut

let mut vec = vec![0];

fn bar(vec: &mut Vec<i32>) {
    // some code here
}

fn foo(vec: &mut Vec<i32>) {
    bar(vec);
}

foo(&mut vec);

因为vec已经是&mut Vec<i32>