Skip to content

Commit 93a4b02

Browse files
KalmaegiYangFong
andauthored
Remove necessary character (#160)
Co-authored-by: YangQi <2419731931@qq.com>
1 parent 29d5b12 commit 93a4b02

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+82
-183
lines changed

src/attribute.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
* 标记函数作为单元测试
1313
* 标记函数作为基准测试的某个部分
1414

15-
当属性作用于整个 crate 时,它们的语法为 `#![crate_attribute]`,当它们用于模块
16-
或项时,语法为 `#[item_attribute]`(注意少了感叹号 `!`)。
15+
当属性作用于整个 crate 时,它们的语法为 `#![crate_attribute]`,当它们用于模块或项时,语法为 `#[item_attribute]`(注意少了感叹号 `!`)。
1716

1817
属性可以接受参数,有不同的语法形式:
1918

src/attribute/crate.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# `crate`
22

3-
`crate_type` 属性可以告知编译器 crate 是一个二进制的可执行文件还是一个
4-
库(甚至是哪种类型的库),`crate_name` 属性可以设定 crate 的名称。
3+
`crate_type` 属性可以告知编译器 crate 是一个二进制的可执行文件还是一个库(甚至是哪种类型的库),`crate_name` 属性可以设定 crate 的名称。
54

65
不过,一定要注意在使用 cargo 时,这两种类型时都**没有**作用。由于大多数 Rust
76
工程都使用 cargo,这意味着 `crate_type``crate_name` 的作用事实上很有限。

src/attribute/unused.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# 死代码 `dead_code`
22

3-
编译器提供了 `dead_code`(死代码,无效代码)[*lint*][lint],这会对未使用的函数
4-
产生警告。可以用一个**属性**来禁用这个 lint。
3+
编译器提供了 `dead_code`(死代码,无效代码)[*lint*][lint],这会对未使用的函数产生警告。可以用一个**属性**来禁用这个 lint。
54

65
```rust,editable
76
fn used_function() {}
@@ -18,7 +17,6 @@ fn main() {
1817
}
1918
```
2019

21-
注意在实际程序中,需要将死代码清除掉。由于本书的例子是交互性的,因而其中需要
22-
允许一些死代码的出现。
20+
注意在实际程序中,需要将死代码清除掉。由于本书的例子是交互性的,因而其中需要允许一些死代码的出现。
2321

2422
[lint]: https://en.wikipedia.org/wiki/Lint_%28software%29

src/conversion.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# 类型转换
22

3-
Rust 使用 [trait][traits] 解决类型之间的转换问题。最一般的转换会用到 [`From`]
4-
[`Into`] 两个 trait。不过,即便常见的情况也可能会用到特别的 trait,尤其是
5-
`String` 转换到别的类型,以及把别的类型转换到 `String` 时。
3+
Rust 使用 [trait][traits] 解决类型之间的转换问题。最一般的转换会用到 [`From`][`Into`] 两个 trait。不过,即便常见的情况也可能会用到特别的 trait,尤其是从 `String` 转换到别的类型,以及把别的类型转换到 `String` 时。
64

75
[traits]: trait.html
86
[`From`]: https://rustwiki.org/zh-CN/std/convert/trait.From.html

src/conversion/string.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,7 @@ fn main() {
4747

4848
## 解析字符串
4949

50-
我们经常需要把字符串转成数字。完成这项工作的标准手段是用 [`parse`] 函数。我们得
51-
提供要转换到的类型,这可以通过不使用类型推断,或者用 “涡轮鱼” 语法(turbo
52-
fish,`<>`)实现。
50+
我们经常需要把字符串转成数字。完成这项工作的标准手段是用 [`parse`] 函数。我们得提供要转换到的类型,这可以通过不使用类型推断,或者用 “涡轮鱼” 语法(turbo fish,`<>`)实现。
5351

5452
只要对目标类型实现了 [`FromStr`] trait,就可以用 `parse` 把字符串转换成目标类型。
5553
标准库中已经给无数种类型实现了 `FromStr`。如果要转换到用户定义类型,只要手动实现

src/conversion/try_from_try_into.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# `TryFrom` and `TryInto`
22

3-
类似于 [`From``Into`][from-into][`TryFrom`][`TryInto`]
4-
类型转换的通用 trait。不同于 `From`/`Into` 的是,`TryFrom``TryInto` trait 用于易出错的转换,也正因如此,其返回值是 [`Result`] 型。
3+
类似于 [`From``Into`][from-into][`TryFrom`][`TryInto`] 是类型转换的通用 trait。不同于 `From`/`Into` 的是,`TryFrom``TryInto` trait 用于易出错的转换,也正因如此,其返回值是 [`Result`] 型。
54

65
[from-into]: from_into.html
76
[`TryFrom`]: https://rustwiki.org/zh-CN/std/convert/trait.TryFrom.html

src/crates.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22

33
crate(中文有 “包,包装箱” 之意)是 Rust 的编译单元。当调用 `rustc some_file.rs`
44
时,`some_file.rs` 被当作 **crate 文件**。如果 `some_file.rs` 里面含有 `mod`
5-
声明,那么模块文件的内容将在编译之前被插入 crate 文件的相应声明处。换句话说,模
6-
**不会**单独被编译,只有 crate 才会被编译。
5+
声明,那么模块文件的内容将在编译之前被插入 crate 文件的相应声明处。换句话说,模块**不会**单独被编译,只有 crate 才会被编译。
76

8-
crate 可以编译成二进制可执行文件(binary)或库文件(library)。默认情况
9-
下,`rustc` 将从 crate 产生二进制可执行文件。这种行为可以通过 `rustc` 的选项 `--crate-type`
7+
crate 可以编译成二进制可执行文件(binary)或库文件(library)。默认情况下,`rustc` 将从 crate 产生二进制可执行文件。这种行为可以通过 `rustc` 的选项 `--crate-type`
108
重载。

src/crates/lib.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ $ ls lib*
2424
library.rlib
2525
```
2626

27-
默认情况下,库会使用 crate 文件的名字,前面加上 “lib” 前缀,但这个默认名称可以
28-
使用 [`crate_name` 属性][crate-name] 覆盖。
27+
默认情况下,库会使用 crate 文件的名字,前面加上 “lib” 前缀,但这个默认名称可以使用 [`crate_name` 属性][crate-name] 覆盖。
2928

3029
[crate-name]: ../attribute/crate.md

src/custom_types/constants.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@ Rust 有两种常量,可以在任意作用域声明,包括全局作用域。
66
* `static`:具有 [`'static`][static] 生命周期的,可以是可变的变量(译注:须使用
77
`static mut` 关键字)。
88

9-
有个特例就是 `"string"` 字面量。它可以不经改动就被赋给一个 `static` 变量,因为它
10-
的类型标记:`&'static str` 就包含了所要求的生命周期 `'static`。其他的引用类型都
11-
必须特地声明,使之拥有`'static` 生命周期。这两种引用类型的差异似乎也无关紧要,因
12-
为无论如何,`static` 变量都得显式地声明。
9+
有个特例就是 `"string"` 字面量。它可以不经改动就被赋给一个 `static` 变量,因为它的类型标记:`&'static str` 就包含了所要求的生命周期 `'static`。其他的引用类型都必须特地声明,使之拥有 `'static` 生命周期。这两种引用类型的差异似乎也无关紧要,因为无论如何,`static` 变量都得显式地声明。
1310

1411
```rust,editable,ignore,mdbook-runnable
1512
// 全局变量是在所有其他作用域之外声明的。

src/error.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
# 错误处理
22

3-
错误处理(error handling)是处理可能发生的失败情况的过程。例如读取一个文件时
4-
失败了,如果继续使用这个**无效的**输入,那显然是有问题的。注意到并且显式地
5-
处理这种错误可以避免程序的其他部分产生潜在的问题。
3+
错误处理(error handling)是处理可能发生的失败情况的过程。例如读取一个文件时失败了,如果继续使用这个**无效的**输入,那显然是有问题的。注意到并且显式地处理这种错误可以避免程序的其他部分产生潜在的问题。
64

7-
在 Rust 中有多种处理错误的方式,在接下来的小节中会一一介绍。它们多少有些
8-
区别,使用场景也不尽相同。总的来说:
5+
在 Rust 中有多种处理错误的方式,在接下来的小节中会一一介绍。它们多少有些区别,使用场景也不尽相同。总的来说:
96

107
* 显式的 `panic` 主要用于测试,以及处理不可恢复的错误。在原型开发中这很有用,比如
118
用来测试还没有实现的函数,不过这时使用 `unimplemented` 更能表达意图。另外在

0 commit comments

Comments
 (0)