mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2024-11-09 08:51:18 +08:00
commit
7309b64c6c
@ -4,7 +4,7 @@
|
||||
> <br>
|
||||
> commit 699adc6f5cb76f6e9d567ff0a57d8a844ac07a88
|
||||
|
||||
大部分错误并没有严重到需要程序完全停止执行。有时,一个函数会因为一个容易理解并做出反应的原因失败。例如,如果因为打开一个并不存在的文件而失败,此时我们可能想要创建这个文件,而不是终止进程。
|
||||
大部分错误并没有严重到需要程序完全停止执行。有时候,一个函数失败,仅仅就是因为一个容易理解和响应的原因。例如,如果因为打开一个并不存在的文件而失败,此时我们可能想要创建这个文件,而不是终止进程。
|
||||
|
||||
回忆一下第二章 [“使用 `Result` 类型来处理潜在的错误”][handle_failure] 部分中的那个 `Result` 枚举,它定义有如下两个成员,`Ok` 和 `Err`:
|
||||
|
||||
@ -71,7 +71,7 @@ enum Result<T, E> {
|
||||
|
||||
> 不同于使用 `match` 和 `Result<T, E>`
|
||||
>
|
||||
> 这里有好多 `match`!`match` 确实很强大,不过也非常的基础。第十三章我们会介绍闭包(closure),这可以用于很多 `Result<T, E>` 上定义的方法。在处理代码中的 `Result<T, E>` 值时这些方法可能会更加简洁。
|
||||
> 这里有好多 `match`!`match` 确实很强大,不过也非常的原始。第十三章我们会介绍闭包(closure),它会和定义在 `Result<T, E>` 中的很多方法一起使用。在处理代码中的 `Result<T, E>` 值时,相比于使用 `match` ,使用这些方法会更加简洁。
|
||||
>
|
||||
> 例如,这是另一个编写与示例 9-5 逻辑相同但是使用闭包和 `unwrap_or_else` 方法的例子:
|
||||
>
|
||||
|
Loading…
Reference in New Issue
Block a user