相关疑难解决方法(0)

如何同时获得对两个数组元素的可变引用?

fn change(a: &mut i32, b: &mut i32) {
    let c = *a;
    *a = *b;
    *b = c;
}

fn main() {
    let mut v = vec![1, 2, 3];
    change(&mut v[0], &mut v[1]);
}
Run Code Online (Sandbox Code Playgroud)

当我编译上面的代码时,它有错误:

error[E0499]: cannot borrow `v` as mutable more than once at a time
 --> src/main.rs:9:32
  |
9 |         change(&mut v[0], &mut v[1]);
  |                     -          ^   - first borrow ends here
  |                     |          |
  |                     |          second mutable borrow occurs here
  |                     first mutable borrow occurs here …
Run Code Online (Sandbox Code Playgroud)

rust

28
推荐指数
5
解决办法
5898
查看次数

标签 统计

rust ×1