我有一个长度不同的 let mut stack: Vec<usize> = vec![5, 7, 1]
。在程序的某个时刻,我想将 stack
的最后一个元素加一。我尝试了 stack.last_mut().unwrap() += 1
(我知道 stack
不会为空),但编译器报错。
error: binary assignment operation `+=` cannot be applied to type `&mut _` [--explain E0368]
--> src/main.rs:3:5
3 |> stack.last_mut().unwrap() += 1;
|> ^^^^^^^^^^^^^^^^^^^^^^^^^
error: invalid left-hand side expression [--explain E0067]
--> src/main.rs:3:5
3 |> stack.last_mut().unwrap() += 1;
|> ^^^^^^^^^^^^^^^^^^^^^^^^^
当然,我可以先从堆栈中弹出最后一个元素,将其递增后再添加回去,但是有更简单的方法吗?