enum Result<T, E> {
Ok(T),
Err(E),
}
Rust的异常处理是通过 Result 的 Ok 和 Err 成员来传递和包裹错误信息.
然而错误信息的处理一般都是要通过match来对类型进行比较, 所以很多时候代码比较冗余, 通过?符号来简化Ok和Err的判断。
- 使用?的函数的返回值必须是Result的结构。
The?
Operator Can Be Used in Functions That ReturnResult
- 有一些库是有自己返回值到Result的转换的,例如
nom
转一个例子