Improve translation grammar in the chapter 19-4

pull/550/head
Sprite 3 years ago
parent dfb5d8fa25
commit a317ca4f5f

@ -79,7 +79,7 @@ fn returns_long_type() -> Thunk {
<span class="caption">示例 19-25: 引入类型别名 `Thunk` 来减少重复</span>
这样读写起来就容易多了!为类型别名选择一个好名字也可以帮助你表达意图(单词 *thunk* 表示会在之后被计算的代码,所以这是一个存放闭包的合适的名字)。
这样读写起来就容易多了!为类型别名选择一个好名字也可以帮助你表达意图(单词 *thunk* 表示会在之后被计算的代码,所以这是一个存放闭包的合适的名字)。
类型别名也经常与 `Result<T, E>` 结合使用来减少重复。考虑一下标准库中的 `std::io` 模块。I/O 操作通常会返回一个 `Result<T, E>`,因为这些操作可能会失败。标准库中的 `std::io::Error` 结构体代表了所有可能的 I/O 错误。`std::io` 中大部分函数会返回 `Result<T, E>`,其中 `E``std::io::Error`,比如 `Write` trait 中的这些函数:
@ -171,7 +171,7 @@ impl<T> Option<T> {
}
```
这里与示例 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`

Loading…
Cancel
Save