Merge pull request #178 from chenxuuu/main

两处小错误
pull/181/head
Sunface 3 years ago committed by GitHub
commit 607798ebad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -115,7 +115,7 @@ fatal runtime error: stack overflow
| 不拥有所有权 | 拥有值的所有权 | | 不拥有所有权 | 拥有值的所有权 |
| 不阻止值被释放(drop) | 所有权计数归零才能drop | | 不阻止值被释放(drop) | 所有权计数归零才能drop |
| 引用的值存在返回Some,不存在返回None | 引用的值必定存在 | | 引用的值存在返回Some,不存在返回None | 引用的值必定存在 |
| 通过`upgrade`取到`Option<Rc<T>>`,然后再取值 | 通过`Deref`自动解引用,取值无需任何操作 | 通过`upgrade`取到`Option<Rc<T>>`,然后再取值 | 通过`Deref`自动解引用,取值无需任何操作 |
通过这个对比,可以非常清晰的看出`Weak`为何这么弱,而这种弱恰恰非常适合我们实现以下的场景: 通过这个对比,可以非常清晰的看出`Weak`为何这么弱,而这种弱恰恰非常适合我们实现以下的场景:

@ -345,7 +345,7 @@ fn retain_even(nums: &mut Vec<i32>) {
## 总结 ## 总结
`Cell`和`RefCell`都为我们带来了内部可见性这个重要特性,同时还将借用规则的检查从编译期推迟到运行期,但是这个检查并不能被绕过,该来早晚还是会来,`R在运行期的报错会造成`panic` `Cell`和`RefCell`都为我们带来了内部可见性这个重要特性,同时还将借用规则的检查从编译期推迟到运行期,但是这个检查并不能被绕过,该来早晚还是会来,`RefCell在运行期的报错会造成`panic`
`RefCell`适用于编译器误报或者一个引用被在多个代码中使用、修改以至于难于管理借用关系时,还有就是需要内部可变性时。 `RefCell`适用于编译器误报或者一个引用被在多个代码中使用、修改以至于难于管理借用关系时,还有就是需要内部可变性时。

Loading…
Cancel
Save