From a317ca4f5f046ae2be46f7ae282d10da12289550 Mon Sep 17 00:00:00 2001 From: Sprite Date: Mon, 4 Oct 2021 15:11:47 +0800 Subject: [PATCH] Improve translation grammar in the chapter 19-4 --- src/ch19-04-advanced-types.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ch19-04-advanced-types.md b/src/ch19-04-advanced-types.md index bc1aeca..afd575e 100644 --- a/src/ch19-04-advanced-types.md +++ b/src/ch19-04-advanced-types.md @@ -79,7 +79,7 @@ fn returns_long_type() -> Thunk { 示例 19-25: 引入类型别名 `Thunk` 来减少重复 -这样就读写起来就容易多了!为类型别名选择一个好名字也可以帮助你表达意图(单词 *thunk* 表示会在之后被计算的代码,所以这是一个存放闭包的合适的名字)。 +这样读写起来就容易多了!为类型别名选择一个好名字也可以帮助你表达意图(单词 *thunk* 表示会在之后被计算的代码,所以这是一个存放闭包的合适的名字)。 类型别名也经常与 `Result` 结合使用来减少重复。考虑一下标准库中的 `std::io` 模块。I/O 操作通常会返回一个 `Result`,因为这些操作可能会失败。标准库中的 `std::io::Error` 结构体代表了所有可能的 I/O 错误。`std::io` 中大部分函数会返回 `Result`,其中 `E` 是 `std::io::Error`,比如 `Write` trait 中的这些函数: @@ -171,7 +171,7 @@ impl Option { } ``` -这里与示例 19-34 中的 `match` 发生了相同的情况:Rust 知道 `val` 是 `T` 类型,`panic!` 是 `!` 类型,所以整个 `match` 表达式的结果是 `T` 类型。这能工作是因为 `panic!` 并不产生一个值;它会终止程序。对于 `None` 的情况,`unwrap` 并不返回一个值,所以这些代码是有效。 +这里与示例 19-34 中的 `match` 发生了相同的情况:Rust 知道 `val` 是 `T` 类型,`panic!` 是 `!` 类型,所以整个 `match` 表达式的结果是 `T` 类型。这能工作是因为 `panic!` 并不产生一个值;它会终止程序。对于 `None` 的情况,`unwrap` 并不返回一个值,所以这些代码是有效的。 最后一个有着 `!` 类型的表达式是 `loop`: