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

x2b*_*ool 5 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);
Run Code Online (Sandbox Code Playgroud)

ant*_*oyo 9

&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);
Run Code Online (Sandbox Code Playgroud)

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