Update chapter_3_16_7.md

This commit is contained in:
令狐一冲
2023-05-18 10:22:13 +08:00
committed by GitHub
parent bb532fe50b
commit 4235916db4

View File

@@ -74,4 +74,14 @@ fn main() {
## 2. 使用弱引用Weak
Weak类似于Rc但它不持有所有权它仅仅保存一份指向数据的弱引用。弱引用就是不保证引用的对象存在如果不存在就返回一个 None。
下面为Weak和Rc的对比
| Weak | Rc |
| ------------------------ | ------------------------ |
| 引用不计数 | 引用计数 |
| 不拥有所有权 | 拥有所有权 |
| 不阻止值被释放 | 阻止值被释放 |
|引用的值存在返回Some不存在返回None | 引用的值必定存在 |
|通过upgrade取到Option<Rc<T>>,然后取值|通过Deref自动解引用取值无需任何操作|
对于上一节中循环链表的例子使用Weak实现为如下