我正在尝试访问向量(Vec<Vec<u32>>
)的向量中的最后一个向量,并将其推入一个值,但是我仍然遇到错误。我正在尝试做的简化版本是:
let mut pc: Vec<Vec<u32>> = vec![];
pc.push(vec![1]);
pc.last().unwrap().push(2);
我得到的错误是:
error[E0596]: cannot borrow data in a `&` reference as mutable
|
| pc.last().unwrap().push(2);
| ^^^^^^^^^^^^^^^^^^ cannot borrow as mutable
我尝试取消引用unwrap()
的结果:(*(pc.last().unwrap())).push(2);
,但错误仍然存在。
预期的行为是类似于[[1, 2]]
的嵌套向量。
答案 0 :(得分:4)
使用last_mut()
代替last
:
fn main(){
let mut pc:Vec<Vec<i32>> = vec![];
pc.push(vec![1]);
pc.last_mut().unwrap().push(2);
println!("{:?}", pc);
}
打印:[[1, 2]]