diff --git a/src/ch15-04-rc.md b/src/ch15-04-rc.md index c3eec2a..feea295 100644 --- a/src/ch15-04-rc.md +++ b/src/ch15-04-rc.md @@ -23,7 +23,7 @@ 列表 `a` 包含 5 之后是 10,之后是另两个列表:`b` 从 3 开始而 `c` 从 4 开始。`b` 和 `c` 会接上包含 5 和 10 的列表 `a`。换句话说,这两个列表会尝试共享第一个列表所包含的 5 和 10。 -尝试使用 `Box` 定义的 `List` 并实现不能工作,如示例 15-17 所示: +尝试使用 `Box` 定义的 `List` 实现并不能工作,如示例 15-17 所示: 文件名: src/main.rs @@ -61,7 +61,7 @@ error[E0382]: use of moved value: `a` the `Copy` trait ``` -`Cons` 成员拥有其储存的数据,所以当创建 `b` 列表时,`a` 被移动进了 `b` 这样 `b` 就拥有了 `a`。接着当再次尝使用 `a` 创建 `c` 时,这不被允许因为 `a` 的所有权已经被移动。 +`Cons` 成员拥有其储存的数据,所以当创建 `b` 列表时,`a` 被移动进了 `b` 这样 `b` 就拥有了 `a`。接着当再次尝试使用 `a` 创建 `c` 时,这不被允许,因为 `a` 的所有权已经被移动。 可以改变 `Cons` 的定义来存放一个引用,不过接着必须指定生命周期参数。通过指定生命周期参数,表明列表中的每一个元素都至少与列表本身存在的一样久。例如,借用检查器不会允许 `let a = Cons(10, &Nil);` 编译,因为临时值 `Nil` 会在 `a` 获取其引用之前就被丢弃了。