【发布时间】:2017-07-27 07:29:29
【问题描述】:
我从借用检查器中得到一个 Rust 编译错误,不知道如何修复它。
下面的代码很简单,C++中类似的代码没有问题。
fn main() {
let mut nums = vec![1, 2, 3];
if let Some(x) = nums.last() {
nums.push(*x);
}
}
这里是错误:
message: 'cannot borrow `nums` as mutable because it is also borrowed as immutable (4, 9)'
【问题讨论】:
-
不了解 Rust,它可能不喜欢在与 nums.push() 相同的语句中执行 nums.last(),因为在将新条目推送到 nums 时 nums.last() 的值可能会发生变化.
标签: rust