Rust 程序设计语言 简体中文版 1.85.05 并以 leaf 作为子节点的实例 branch,如示例 15-27 所示: 文件名:src/main.rs fn main() { let leaf = Rc::new(Node { value: 3, children: RefCell::new(vec![]), }); let branch = Rc::new(Node { 节点和以 leaf 作为子节点的 branch 节点 这里克隆了 leaf 中的 Rc并储存在 branch 中,这意味着 leaf 中的 Node 现在有两个所 有者:leaf 和 branch。可以通过 branch.children 从 branch 中获得 leaf,不过无法从 leaf 得到 branch。leaf 没有到 branch 的引用且并不知道它们相互关联。我们希望 的引用且并不知道它们相互关联。我们希望 leaf 知道 branch 是其父节点。接下来我们会这么做。 350/562Rust 程序设计语言 简体中文版 增加从子到父的引用 为了使子节点知道其父节点,需要在 Node 结构体定义中增加一个 parent 字段。问题是 parent 的类型应该是什么。我们知道其不能包含 Rc ,因为这样 leaf.parent 将会指向 branch 而 branch.children 会包含 0 码力 | 562 页 | 3.23 MB | 1 月前3
共 1 条
- 1













