我试图访问向量向量 ( Vec<Vec<u32>>) 中的最后一个向量并向其推送一个值,但我仍然遇到错误。我想做的事情的简化版本是:
let mut pc: Vec<Vec<u32>> = vec![];
pc.push(vec![1]);
pc.last().unwrap().push(2);
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
error[E0596]: cannot borrow data in a `&` reference as mutable
|
| pc.last().unwrap().push(2);
| ^^^^^^^^^^^^^^^^^^ cannot borrow as mutable
Run Code Online (Sandbox Code Playgroud)
我尝试取消引用unwrap():的结果,(*(pc.last().unwrap())).push(2);但错误仍然存在。
预期的行为是一个类似于: 的嵌套向量[[1, 2]]。
而不是last使用last_mut():
fn main(){
let mut pc:Vec<Vec<i32>> = vec![];
pc.push(vec![1]);
pc.last_mut().unwrap().push(2);
println!("{:?}", pc);
}
Run Code Online (Sandbox Code Playgroud)
印刷:[[1, 2]]
| 归档时间: |
|
| 查看次数: |
907 次 |
| 最近记录: |