我如何转换这样的东西:
let mut a = vec![1, 2, 3, 4i32];
for i in a.iter_mut() {
*i += 1;
}
Run Code Online (Sandbox Code Playgroud)
使用map和关闭的单行操作?
我试过:
a.iter_mut().map(|i| *i + 1).collect::<Vec<i32>>();
Run Code Online (Sandbox Code Playgroud)
以上仅在我将其重新分配给a. 为什么是这样?是否map正在获取副本a而不是可变引用?如果是这样,我怎样才能获得可变引用?