mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2024-11-09 08:51:18 +08:00
Update ch09-02-recoverable-errors-with-result.md
“Err中的值将作为整个函数的返回值” 改为 “Err将作为整个函数的返回值”
This commit is contained in:
parent
3d4f1ecb0a
commit
3293646772
@ -168,7 +168,7 @@ src/libcore/result.rs:906:4
|
|||||||
|
|
||||||
<span class="caption">示例 9-7:一个使用 `?` 运算符向调用者返回错误的函数</span>
|
<span class="caption">示例 9-7:一个使用 `?` 运算符向调用者返回错误的函数</span>
|
||||||
|
|
||||||
`Result` 值之后的 `?` 被定义为与示例 9-6 中定义的处理 `Result` 值的 `match` 表达式有着完全相同的工作方式。如果 `Result` 的值是 `Ok`,这个表达式将会返回 `Ok` 中的值而程序将继续执行。如果值是 `Err`,`Err` 中的值将作为整个函数的返回值,就好像使用了 `return` 关键字一样,这样错误值就被传播给了调用者。
|
`Result` 值之后的 `?` 被定义为与示例 9-6 中定义的处理 `Result` 值的 `match` 表达式有着完全相同的工作方式。如果 `Result` 的值是 `Ok`,这个表达式将会返回 `Ok` 中的值而程序将继续执行。如果值是 `Err`,`Err` 将作为整个函数的返回值,就好像使用了 `return` 关键字一样,这样错误值就被传播给了调用者。
|
||||||
|
|
||||||
示例 9-6 中的 `match` 表达式与 `?` 运算符所做的有一点不同:`?` 运算符所使用的错误值被传递给了 `from` 函数,它定义于标准库的 `From` trait 中,其用来将错误从一种类型转换为另一种类型。当 `?` 运算符调用 `from` 函数时,收到的错误类型被转换为由当前函数返回类型所指定的错误类型。这在当函数返回单个错误类型来代表所有可能失败的方式时很有用,即使其可能会因很多种原因失败。
|
示例 9-6 中的 `match` 表达式与 `?` 运算符所做的有一点不同:`?` 运算符所使用的错误值被传递给了 `from` 函数,它定义于标准库的 `From` trait 中,其用来将错误从一种类型转换为另一种类型。当 `?` 运算符调用 `from` 函数时,收到的错误类型被转换为由当前函数返回类型所指定的错误类型。这在当函数返回单个错误类型来代表所有可能失败的方式时很有用,即使其可能会因很多种原因失败。
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user