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