为什么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);
答案 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>
。