diff --git a/book/contents/basic/compound-type/string-slice.md b/book/contents/basic/compound-type/string-slice.md index 55666e33..fffe1d2e 100644 --- a/book/contents/basic/compound-type/string-slice.md +++ b/book/contents/basic/compound-type/string-slice.md @@ -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` 更加容易使用,而且也在编译期就消除了大量错误!