我一直在与借阅检查员打架......我想要做的就是:
#[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 ×1