make the explanation more clear

pull/358/head
Colin 3 years ago committed by GitHub
parent 62546f9cb9
commit 36a4a5e462
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -119,7 +119,7 @@ error[E0502]: cannot borrow `s` as mutable because it is also borrowed as immuta
| ---- immutable borrow later used here
```
回忆一下借用的规则:当我们已经有了可变借用时,就无法再拥有不可变的借用。因为 `clear` 需要清空改变 `String`,因此它需要一个可变借用,而之后的 `println!` 又使用了不可变借用,因此编译无法通过。
回忆一下借用的规则:当我们已经有了可变借用时,就无法再拥有不可变的借用。因为 `clear` 需要清空改变 `String`,因此它需要一个可变借用(利用 VSCode 可以看到该方法的声明是 `pub fn clear(&mut self)` 参数是对自身的可变借用 而之后的 `println!` 又使用了不可变借用,也就是在 `s.clear()` 处可变借用与不可变借用试图同时生效,因此编译无法通过。
从上述代码可以看出Rust 不仅让我们的 `API` 更加容易使用,而且也在编译期就消除了大量错误!

Loading…
Cancel
Save