diff --git a/README.md b/README.md
index 56c526f..0be057a 100644
--- a/README.md
+++ b/README.md
@@ -13,6 +13,10 @@ PS:
[source]: https://github.com/rust-lang/book/tree/main/src
+## 校对
+
+部分翻译采用 ChatGPT 4o 进行翻译校对。提示词详见 [proofreading_prompt.md](proofreading_prompt.md)
+
## 静态页面构建与文档撰写
### 构建
diff --git a/proofreading_prompt.md b/proofreading_prompt.md
new file mode 100644
index 0000000..8616b80
--- /dev/null
+++ b/proofreading_prompt.md
@@ -0,0 +1,32 @@
+**任务说明:**
+
+作为一名专业翻译,同时精通 Rust 编程语言,你的任务是对提供的英文原文进行校对,并确保中文翻译的准确性。
+
+**要求:**
+
+1. **格式保留**:在校对过程中,请尽量保持原有中文翻译的格式和结构。
+2. **术语保留**:对于中文翻译中出现的英文专业术语,不要进行翻译,直接保留原文。
+3. **校对标准**:在校对时,请依据英文原文对中文翻译进行全面检查,确保准确传达原文的含义。
+4. **专业性**:请尊重专业领域的翻译技巧,避免简单直译,而是根据上下文做出最适当的调整。
+
+**输入:**
+
+- 英文原文:
+
+```
+
+```
+
+- 中文翻译:
+
+```
+
+```
+
+**输出:**
+
+- 中文翻译校对:
+
+```
+
+```
diff --git a/src/ch13-01-closures.md b/src/ch13-01-closures.md
index eb0edfd..924e850 100644
--- a/src/ch13-01-closures.md
+++ b/src/ch13-01-closures.md
@@ -4,13 +4,13 @@
>
> commit a2cb72d3ad7584cc1ae3b85f715c877872f5e3ab
-Rust 的 **闭包**(*closures*)是可以保存在一个变量中或作为参数传递给其他函数的匿名函数。可以在一个地方创建闭包,然后在不同的上下文中执行闭包运算。不同于函数,闭包允许捕获被定义时所在作用域中的值。我们将展示闭包的这些功能如何复用代码和自定义行为。
+Rust 的 **闭包**(*closures*)是可以保存在变量中或作为参数传递给其他函数的匿名函数。你可以在一个地方创建闭包,然后在不同的上下文中执行闭包运算。不同于函数,闭包允许捕获其被定义时所在作用域中的值。我们将展示这些闭包特性如何支持代码复用和行为定制。
### 闭包会捕获其环境
-我们首先了解如何通过闭包捕获定义它的环境中的值以便之后使用。考虑如下场景:有时 T 恤公司会赠送限量版 T 恤给邮件列表中的成员作为促销。邮件列表中的成员可以选择将他们的喜爱的颜色添加到个人信息中。如果被选中的成员设置了喜爱的颜色,他们将获得那个颜色的 T 恤。如果他没有设置喜爱的颜色,他们会获赠公司现存最多的颜色的款式。
+我们首先了解如何通过闭包捕获定义它的环境中的值以便之后使用。考虑如下场景:我们的 T 恤公司偶尔会向邮件列表中的某位成员赠送一件限量版的独家 T 恤作为促销。邮件列表中的成员可以选择将他们的喜爱的颜色添加到个人信息中。如果被选中的成员设置了喜爱的颜色,他们将获得那个颜色的 T 恤。如果他没有设置喜爱的颜色,他们会获赠公司当前库存最多的颜色的款式。
-有很多种方式来实现这些。例如,使用有 `Red` 和 `Blue` 两个成员的 `ShirtColor` 枚举(出于简单考虑限定为两种颜色)。我们使用 `Inventory` 结构体来代表公司的库存,它有一个类型为 `Vec` 的 `shirts` 字段表示库存中的衬衫的颜色。`Inventory` 上定义的 `giveaway` 方法获取免费衬衫得主所喜爱的颜色(如有),并返回其获得的衬衫的颜色。初始代码如示例 13-1 所示:
+有很多种方式来实现这一点。例如,使用有 `Red` 和 `Blue` 两个成员的 `ShirtColor` 枚举(出于简单考虑限定为两种颜色)。我们使用 `Inventory` 结构体来代表公司的库存,它有一个类型为 `Vec` 的 `shirts` 字段表示库存中的衬衫的颜色。`Inventory` 上定义的 `giveaway` 方法获取免费衬衫得主所喜爱的颜色(如有),并返回其获得的衬衫的颜色。初始代码如示例 13-1 所示:
文件名:src/main.rs
@@ -139,13 +139,13 @@ let add_one_v4 = |x| x + 1 ;
### 将被捕获的值移出闭包和 `Fn` trait
-一旦闭包捕获了定义它的环境中一个值的引用或者所有权(也就影响了什么会被移 _进_ 闭包,如有),闭包体中的代码定义了稍后在闭包计算时对引用或值如何操作(也就影响了什么会被移 _出_ 闭包,如有)。闭包体可以做以下任何事:将一个捕获的值移出闭包,修改捕获的值,既不移动也不修改值,或者一开始就不从环境中捕获值。
+一旦闭包捕获了定义它的环境中的某个值的引用或所有权(也就影响了什么会被移 _进_ 闭包,如有),闭包体中的代码则决定了在稍后执行闭包时,这些引用或值将如何处理(也就影响了什么会被移 _出_ 闭包,如有)。闭包体可以执行以下任一操作:将一个捕获的值移出闭包,修改捕获的值,既不移动也不修改值,或者一开始就不从环境中捕获任何值。
-闭包捕获和处理环境中的值的方式影响闭包实现的 trait。Trait 是函数和结构体指定它们能用的闭包的类型的方式。取决于闭包体如何处理值,闭包自动、渐进地实现一个、两个或三个 `Fn` trait。
+闭包捕获和处理环境中的值的方式会影响闭包实现哪些 trait,而 trait 是函数和结构体指定它们可以使用哪些类型闭包的方式。根据闭包体如何处理这些值,闭包会自动、渐进地实现一个、两个或全部三个 `Fn` trait。
-1. `FnOnce` 适用于能被调用一次的闭包,所有闭包都至少实现了这个 trait,因为所有闭包都能被调用。一个会将捕获的值移入闭包体的闭包只实现 `FnOnce` trait,这是因为它只能被调用一次。
-2. `FnMut` 适用于不会将捕获的值移入闭包体的闭包,但它可能会修改被捕获的值。这类闭包可以被调用多次。
-3. `Fn` 适用于既不将被捕获的值移入闭包体也不修改被捕获的值的闭包,当然也包括不从环境中捕获值的闭包。这类闭包可以被调用多次而不改变它们的环境,这在会多次并发调用闭包的场景中十分重要。
+1. `FnOnce` 适用于只能被调用一次的闭包。所有闭包至少都实现了这个 trait,因为所有闭包都能被调用。一个会将捕获的值从闭包体中移出的闭包只会实现 `FnOnce` trait,而不会实现其他 `Fn` 相关的 trait,因为它只能被调用一次。
+2. `FnMut` 适用于不会将捕获的值移出闭包体,但可能会修改捕获值的闭包。这类闭包可以被调用多次。
+3. `Fn` 适用于既不将捕获的值移出闭包体,也不修改捕获值的闭包,同时也包括不从环境中捕获任何值的闭包。这类闭包可以被多次调用而不会改变其环境,这在会多次并发调用闭包的场景中十分重要。
让我们来看示例 13-1 中使用的在 `Option` 上的 `unwrap_or_else` 方法的定义:
diff --git a/terminology.md b/terminology.md
deleted file mode 100644
index dae63a1..0000000
--- a/terminology.md
+++ /dev/null
@@ -1,4 +0,0 @@
-## 中英文对照
-
-- high-level: 高层
-- low-level: 底层