Update Ch15

This commit is contained in:
Peng Hailin, 2023-05-15 21:43:43 +08:00
parent a18e0a47a9
commit 11da9b42e1

View File

@ -1112,14 +1112,13 @@ b 的下一条目 = Some(RefCell { value: Cons(5, RefCell { value: Nil }) })
由于 `Weak<T>` 所引用的值可能已被弃用,因此要对 `Weak<T>` 所指向的值执行任何操作,咱们都必须确保该值仍然存在。通过在 `Weak<T>` 实例上调用 `upgrade` 方法来做到这一点,他将返回一个 `Option<Rc<T>>`。如果 `Rc<T>` 的值还没有被弃用,咱们将得到一个 `Some` 的结果;如果 `Rc<T>` 的值已被弃用,咱们将得到一个 `None` 的结果。因为 `upgrade` 返回的是 `Option<Rc<T>>`Rust会确保 `Some``None` 的情况都得到处理,而且不会出现无效的指针。
作为一个例子,我们不是使用其项目只知道下一项目的列表数据结构,而是将创建一个其项目会清楚其子项目 *和* 其父项目的树。
作为一个例子,我们不是使用其项目只知道下一项目的列表数据结构,而是将创建一个其项目了解其子项目 *及* 其父项目的树。
#### 创建一个树形数据结构:带有子节点的节点
**Creating a Tree Data Structure: a Node with Child Nodes**
作为开头,这里将构建有着了解其子节点的一些节点。这里将创建出一个名为 `Node` 的结构体,保存着自身的 `i32` 值,以及到其子 `Node` 值的一些引用。
文件名:`src/main.rs`