Merge pull request #404 from DyeKuu/master

fix: translation/typo/url
This commit is contained in:
KaiserY 2020-06-12 23:38:29 +08:00 committed by GitHub
commit 0ff3329829
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 4 additions and 4 deletions

View File

@ -436,7 +436,7 @@ fn main() {
<span class="caption">示例 12-14`minigrep` crate 引入 *src/main.rs* 的作用域中</span>
为了将库 crate 引入二进制 crate我们使用了 `use minigrep`。接着 `use minigrep::Config` `Config` 类型引入作用域,并使用 crate 名称作为 `run` 函数的前缀。通过这些重构,所有功能应该能够联系在一起并运行了。运行 `cargo run` 来确保一切都正确的衔接在一起。
我们添加了一行 `use minigrep::Config`,它`Config` 类型引入作用域,并使用 crate 名称作为 `run` 函数的前缀。通过这些重构,所有功能应该能够联系在一起并运行了。运行 `cargo run` 来确保一切都正确的衔接在一起。
哇哦!这可有很多的工作,不过我们为将来的成功打下了基础。现在处理错误将更容易,同时代码也更加模块化。从现在开始几乎所有的工作都将在 *src/lib.rs* 中进行。

View File

@ -123,7 +123,7 @@ fn main() {
<span class="caption">示例 15-19打印出引用计数</span>
在程序中每个引用计数变化的点,会打印出引用计数,其值可以通过调用 `Rc::strong_count` 函数获得。这个函数叫做 `strong_count` 而不是 `count` 是因为 `Rc<T>` 也有 `weak_count`;在 [“避免引用循环:将 `Rc<T>` 变为 `Weak<T>`”](preventing-ref-cycles) 部分会讲解 `weak_count` 的用途。
在程序中每个引用计数变化的点,会打印出引用计数,其值可以通过调用 `Rc::strong_count` 函数获得。这个函数叫做 `strong_count` 而不是 `count` 是因为 `Rc<T>` 也有 `weak_count`;在 [“避免引用循环:将 `Rc<T>` 变为 `Weak<T>`”](ch15-06-reference-cycles.html#preventing-reference-cycles-turning-an-rct-into-a-weakt) 部分会讲解 `weak_count` 的用途。
这段代码会打印出:

View File

@ -283,6 +283,6 @@ error[E0382]: use of moved value: `v`
not implement the `Copy` trait
```
Rust 的所有权规则又一次帮助了我们!示例 16-3 中的错误是因为 Rust 是保守的并只会为线程借用 `v`,这意味着主线程理论上可能使新建线程的引用无效。通过告诉 Rust 将 `v` 的所有权移动到新建线程,我们向 Rust 保证主线程不会再使用 `v`。如果对示例 16-4 也做出如此修改,那么当在主线程中使用 `v` 时就会违反所有权规则。 `move` 关键字覆盖了 Rust 默认保守的借用:其也不允许我们违反所有权规则。
Rust 的所有权规则又一次帮助了我们!示例 16-3 中的错误是因为 Rust 是保守的并只会为线程借用 `v`,这意味着主线程理论上可能使新建线程的引用无效。通过告诉 Rust 将 `v` 的所有权移动到新建线程,我们向 Rust 保证主线程不会再使用 `v`。如果对示例 16-4 也做出如此修改,那么当在主线程中使用 `v` 时就会违反所有权规则。 `move` 关键字覆盖了 Rust 默认保守的借用:不允许我们违反所有权规则。
现在我们对线程和线程 API 有了基本的了解,让我们讨论一下使用线程实际可以 **做** 什么吧。

View File

@ -30,7 +30,7 @@ pub trait Draw {
<span class="caption">示例 17-3`Draw` trait 的定义</span>
因为第十章已经讨论过如何定义 trait其语法看起来应该比较眼熟。接下来就是新内容了例 17-4 定义了一个存放了名叫 `components` 的 vector 的结构体 `Screen`。这个 vector 的类型是 `Box<dyn Draw>`,此为一个 trait 对象:它是 `Box` 中任何实现了 `Draw` trait 的类型的替身。
因为第十章已经讨论过如何定义 trait其语法看起来应该比较眼熟。接下来就是新内容了例 17-4 定义了一个存放了名叫 `components` 的 vector 的结构体 `Screen`。这个 vector 的类型是 `Box<dyn Draw>`,此为一个 trait 对象:它是 `Box` 中任何实现了 `Draw` trait 的类型的替身。
<span class="filename">文件名: src/lib.rs</span>