mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2024-12-26 12:50:42 +08:00
Update Ch15
This commit is contained in:
parent
a8b28d757d
commit
6d57d21583
@ -1054,7 +1054,7 @@ Rust 的内存安全保证,使得意外创建出从未清理过的内存(称
|
||||
|
||||
*清单 15-25:包含 `RefCell<T>` 的构造列表定义,因此我们可以修改 `Cons` 变种指向的内容*
|
||||
|
||||
这里用的是清单 15-5 中那个 `List` 定义的另一变体。`Cons` 变种中的第二个元素,现在是 `RefCell<Rc<List>>`,表示这里不是要如同在清单 15-24 中所做的那样,具备修改那个 `i32` 值的能力,这里是要修改某个 `Cons` 变种所指向的那个 `List` 值。这里还添加了在有着某个 `Cons` 变种时,实现便于访问其第二个项目的 `tail` 方法。
|
||||
我们正在使用清单 `15-5` 中 `List` 定义的另一种变体。 `Cons` 变种中的第二个元素现在是 `RefCell<Rc<List>>`,这意味着我们不像在示例 `15-24` 中那样能够修改 `i32` 值,我们打算修改 `Cons` 变种指向的 `List` 值。我们还添加了一个 `tail` 方法,以便在我们有 `Cons` 变种时方便地访问第二个项目。
|
||||
|
||||
在下面清单 15-26 中,咱们添加了用到清单 15-25 中那些定义的 `main` 函数。此代码创建了变量 `a` 中的一个清单,以及变量 `b` 中指向 `a` 中清单的一个清单。随后他将 `a` 中的清单指向了 `b`,这就创建了一个循环引用。其间有着一些 `println!` 语句,来显示此过程中不同点位的那些引用计数。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user