Merge pull request #665 from sxyazi/patch-4

fix: function name to call
This commit is contained in:
KaiserY 2022-11-04 18:39:08 +08:00 committed by GitHub
commit 93f2347ea7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View File

@ -203,11 +203,11 @@ Rust 知道 `c` 位于第一个模式的范围内,并会打印出 `early ASCII
<span class="caption">示例 18-19: 忽略元组的多个部分</span> <span class="caption">示例 18-19: 忽略元组的多个部分</span>
这会打印出 `Some numbers: 2, 8, 32`, 值 4 和 16 会被忽略。 这会打印出 `Some numbers: 2, 8, 32`值 4 和 16 会被忽略。
#### 通过在名字前以一个下划线开头来忽略未使用的变量 #### 通过在名字前以一个下划线开头来忽略未使用的变量
如果你创建了一个变量却不在任何地方使用它, Rust 通常会给你一个警告,因为这可能会是个 bug。但是有时创建一个还未使用的变量是有用的比如你正在设计原型或刚刚开始一个项目。这时你希望告诉 Rust 不要警告未使用的变量,为此可以用下划线作为变量名的开头。示例 18-20 中创建了两个未使用变量,不过当编译代码时只会得到其中一个的警告: 如果你创建了一个变量却不在任何地方使用它Rust 通常会给你一个警告,因为这可能会是个 bug。但是有时创建一个还未使用的变量是有用的比如你正在设计原型或刚刚开始一个项目。这时你希望告诉 Rust 不要警告未使用的变量,为此可以用下划线作为变量名的开头。示例 18-20 中创建了两个未使用变量,不过当编译代码时只会得到其中一个的警告:
<span class="filename">文件名: src/main.rs</span> <span class="filename">文件名: src/main.rs</span>
@ -219,7 +219,7 @@ Rust 知道 `c` 位于第一个模式的范围内,并会打印出 `early ASCII
这里得到了警告说未使用变量 `y`,不过没有警告说未使用下划线开头的变量。 这里得到了警告说未使用变量 `y`,不过没有警告说未使用下划线开头的变量。
注意, 只使用 `_` 和使用以下划线开头的名称有些微妙的不同:比如 `_x` 仍会将值绑定到变量,而 `_` 则完全不会绑定。为了展示这个区别的意义,示例 18-21 会产生一个错误。 注意只使用 `_` 和使用以下划线开头的名称有些微妙的不同:比如 `_x` 仍会将值绑定到变量,而 `_` 则完全不会绑定。为了展示这个区别的意义,示例 18-21 会产生一个错误。
```rust,ignore,does_not_compile ```rust,ignore,does_not_compile
{{#rustdoc_include ../listings/ch18-patterns-and-matching/listing-18-21/src/main.rs:here}} {{#rustdoc_include ../listings/ch18-patterns-and-matching/listing-18-21/src/main.rs:here}}

View File

@ -180,7 +180,7 @@ $ cargo new hello_macro_derive --lib
当用户在一个类型上指定 `#[derive(HelloMacro)]` 时,`hello_macro_derive` 函数将会被调用。因为我们已经使用 `proc_macro_derive` 及其指定名称`HelloMacro`对 `hello_macro_derive` 函数进行了注解,指定名称`HelloMacro`就是 trait 名,这是大多数过程宏遵循的习惯。 当用户在一个类型上指定 `#[derive(HelloMacro)]` 时,`hello_macro_derive` 函数将会被调用。因为我们已经使用 `proc_macro_derive` 及其指定名称`HelloMacro`对 `hello_macro_derive` 函数进行了注解,指定名称`HelloMacro`就是 trait 名,这是大多数过程宏遵循的习惯。
该函数首先将来自 `TokenStream``input` 转换为一个我们可以解释和操作的数据结构。这正是 `syn` 派上用场的地方。`syn` 中的 `parse_derive_input` 函数获取一个 `TokenStream` 并返回一个表示解析出 Rust 代码的 `DeriveInput` 结构体。示例 19-32 展示了从字符串 `struct Pancakes;` 中解析出来的 `DeriveInput` 结构体的相关部分: 该函数首先将来自 `TokenStream``input` 转换为一个我们可以解释和操作的数据结构。这正是 `syn` 派上用场的地方。`syn` 中的 `parse` 函数获取一个 `TokenStream` 并返回一个表示解析出 Rust 代码的 `DeriveInput` 结构体。示例 19-32 展示了从字符串 `struct Pancakes;` 中解析出来的 `DeriveInput` 结构体的相关部分:
```rust,ignore ```rust,ignore
DeriveInput { DeriveInput {