小编tro*_*nje的帖子

如何在Rust中一次使用Vec中的多个项目?

我一直在与借阅检查员打架......我想要做的就是:

#[derive(Debug)]
struct SomeStruct {
    value: String,
}

impl SomeStruct {
    fn new(value: &str) -> SomeStruct {
        SomeStruct { value: value.to_string() }
    }

    fn change_value(&mut self, new_value: &str) {
        self.value = new_value.to_string();
    }
}

fn main() {
    let mut my_vec = vec![
        SomeStruct::new("foo"),
        SomeStruct::new("bar"),
    ];

    my_vec[0].change_value(my_vec[1].value.as_str());
}
Run Code Online (Sandbox Code Playgroud)

这是我遇到的问题的一个非常通用的版本.这是stderr:

error[E0502]: cannot borrow `my_vec` as immutable because it is also borrowed as mutable
  --> src/main.rs:22:30
   |
22 |     my_vec[0].change_value(my_vec[1].value.as_str());
   |     ------                 ^^^^^^                  - mutable borrow ends here
   |     |                      |
   |     | …
Run Code Online (Sandbox Code Playgroud)

rust

6
推荐指数
1
解决办法
401
查看次数

标签 统计

rust ×1