From 29bffa24342d36fa43b566ebeaff06440fbc9a55 Mon Sep 17 00:00:00 2001 From: sxyazi Date: Wed, 2 Nov 2022 09:06:59 +0800 Subject: [PATCH 1/2] fix: typo --- src/ch14-02-publishing-to-crates-io.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch14-02-publishing-to-crates-io.md b/src/ch14-02-publishing-to-crates-io.md index cadc773..4bb5e13 100644 --- a/src/ch14-02-publishing-to-crates-io.md +++ b/src/ch14-02-publishing-to-crates-io.md @@ -148,7 +148,7 @@ test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; fini ### 创建 Crates.io 账号 -在你可以发布任何 crate 之前,需要在 [crates.io](https://crates.io) 上注册账号并获取一个 API token。为此,访问位于 [crates.io](https://crates.io) 的首页并使用 GitHub 账号登陆。(目前 GitHub 账号是必须的,不过将来该网站可能会支持其他创建账号的方法)一旦登陆之后,查看位于 [https://crates.io/me/](https://crates.io/me/) 的账户设置页面并获取 API token。接着使用该 API token 运行 `cargo login` 命令,像这样: +在你可以发布任何 crate 之前,需要在 [crates.io](https://crates.io) 上注册账号并获取一个 API token。为此,访问位于 [crates.io](https://crates.io) 的首页并使用 GitHub 账号登录。(目前 GitHub 账号是必须的,不过将来该网站可能会支持其他创建账号的方法)一旦登录之后,查看位于 [https://crates.io/me/](https://crates.io/me/) 的账户设置页面并获取 API token。接着使用该 API token 运行 `cargo login` 命令,像这样: ```console $ cargo login abcdefghijklmnopqrstuvwxyz012345 From f364f7f314406c142ffce5d5d5cba774d9f57489 Mon Sep 17 00:00:00 2001 From: sxyazi Date: Wed, 2 Nov 2022 09:11:24 +0800 Subject: [PATCH 2/2] fix: use the periods of Chinese, rather than English --- src/appendix-01-keywords.md | 2 +- src/ch10-03-lifetime-syntax.md | 2 +- src/ch15-06-reference-cycles.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/appendix-01-keywords.md b/src/appendix-01-keywords.md index 039f0ac..2688608 100644 --- a/src/appendix-01-keywords.md +++ b/src/appendix-01-keywords.md @@ -111,6 +111,6 @@ fn main() { 此代码编译没有任何错误。注意 `r#` 前缀需同时用于函数名定义和 `main` 函数中的调用。 -原始标识符允许使用你选择的任何单词作为标识符,即使该单词恰好是保留关键字。 这给予了我们更大的自由来选择名字,这样与其他语言交互式就不用考虑到关键字问题,在要交互的语言中这个名字不是关键字。此外,原始标识符允许你使用以不同于你的 crate 使用的 Rust 版本编写的库。比如,`try` 在 2015 edition 中不是关键字,而在 2018 edition 则是。所以如果用 2015 edition 编写的库中带有 `try` 函数,在 2018 edition 中调用时就需要使用原始标识符语法,在这里是 `r#try`。有关版本的更多信息,请参见[附录 E][appendix-e]. +原始标识符允许使用你选择的任何单词作为标识符,即使该单词恰好是保留关键字。 这给予了我们更大的自由来选择名字,这样与其他语言交互式就不用考虑到关键字问题,在要交互的语言中这个名字不是关键字。此外,原始标识符允许你使用以不同于你的 crate 使用的 Rust 版本编写的库。比如,`try` 在 2015 edition 中不是关键字,而在 2018 edition 则是。所以如果用 2015 edition 编写的库中带有 `try` 函数,在 2018 edition 中调用时就需要使用原始标识符语法,在这里是 `r#try`。有关版本的更多信息,请参见[附录 E][appendix-e]。 [appendix-e]: appendix-05-editions.html diff --git a/src/ch10-03-lifetime-syntax.md b/src/ch10-03-lifetime-syntax.md index f1a46ff..20a4d8c 100644 --- a/src/ch10-03-lifetime-syntax.md +++ b/src/ch10-03-lifetime-syntax.md @@ -10,7 +10,7 @@ ### 生命周期避免了悬垂引用 -生命周期的主要目标是避免悬垂引用,后者会导致程序引用了非预期引用的数据。考虑一下示例 10-17 中的程序,它有一个外部作用域和一个内部作用域. +生命周期的主要目标是避免悬垂引用,后者会导致程序引用了非预期引用的数据。考虑一下示例 10-17 中的程序,它有一个外部作用域和一个内部作用域。 ```rust,ignore,does_not_compile {{#rustdoc_include ../listings/ch10-generic-types-traits-and-lifetimes/listing-10-17/src/main.rs:here}} diff --git a/src/ch15-06-reference-cycles.md b/src/ch15-06-reference-cycles.md index c05037a..ca0a139 100644 --- a/src/ch15-06-reference-cycles.md +++ b/src/ch15-06-reference-cycles.md @@ -89,7 +89,7 @@ Rust 的内存安全性保证使其难以意外地制造永远也不会被清理 #### 增加从子到父的引用 -为了使子节点知道其父节点,需要在 `Node` 结构体定义中增加一个 `parent` 字段。问题是 `parent` 的类型应该是什么。我们知道其不能包含 `Rc`,因为这样 `leaf.parent` 将会指向 `branch` 而 `branch.children` 会包含 `leaf` 的指针,这会形成引用循环,会造成其 `strong_count` 永远也不会为 0. +为了使子节点知道其父节点,需要在 `Node` 结构体定义中增加一个 `parent` 字段。问题是 `parent` 的类型应该是什么。我们知道其不能包含 `Rc`,因为这样 `leaf.parent` 将会指向 `branch` 而 `branch.children` 会包含 `leaf` 的指针,这会形成引用循环,会造成其 `strong_count` 永远也不会为 0。 现在换一种方式思考这个关系,父节点应该拥有其子节点:如果父节点被丢弃了,其子节点也应该被丢弃。然而子节点不应该拥有其父节点:如果丢弃子节点,其父节点应该依然存在。这正是弱引用的例子!