介绍 ?
有时候我们只是想要 unwrap
的简洁性,而又不想出现 panic
的可能性。直到现在,当我们真正想把变量取出时,unwrap
迫使我们进行越来越深的嵌套。这正是 ?
的目的。
当找到一个 Err
时,有两种有效的操作可以执行:
panic!
,我们已经决定尽可能避免使用它return
,因为Err
意味着它无法被处理
?
*几乎*1 完全等同于 unwrap
,只是在遇到 Err
时会 return
而不是 panic
。让我们看看如何简化之前使用组合器的示例。
try!
宏
在 ?
出现之前,相同的功能是通过 try!
宏实现的。现在推荐使用 ?
运算符,但在查看旧代码时,您可能仍然会发现 try!
。上一个示例中的相同的 multiply
函数使用 try!
会是这样:
1
有关更多详细信息,请参见 重新进入 ?。