我遇到了借用检查器无法“释放”可变借用的问题。
代码如下:
如果我正在处理与可变调用相关的引用,我可以理解这个问题,但似乎并非如此。
完整代码的 Rust Playground:https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=de4143ddf57cc8a97e7a884bbe13dfa4。
代码如下:
let mut data = (1..=100).collect::<Vec<_>>();
let mut c = Canvas::new(10, 10, &mut data);
c.iter_rows_mut(4..7);
c.iter_rows(4..7).collect::<Vec<_>>();
它在抱怨:
error[E0502]: cannot borrow `c` as immutable because it is also borrowed as mutable
--> src/lib.rs:59:9
|
57 | c.iter_rows_mut(4..7);
| - mutable borrow occurs here
58 |
59 | c.iter_rows(4..7).collect::<Vec<_>>();
| ^
| |
| immutable borrow occurs here
| mutable borrow later used here
error: aborting due to previous error
如果我正在处理与可变调用相关的引用,我可以理解这个问题,但似乎并非如此。
完整代码的 Rust Playground:https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=de4143ddf57cc8a97e7a884bbe13dfa4。