Rust的问号操作符?

rust-lang地址

enum Result {
    Ok(T),
    Err(E),
}

Rust的异常处理是通过 Result 的 Ok 和 Err 成员来传递和包裹错误信息.
然而错误信息的处理一般都是要通过match来对类型进行比较, 所以很多时候代码比较冗余, 通过?符号来简化Ok和Err的判断。

  • 使用?的函数的返回值必须是Result的结构。
    The ? Operator Can Be Used in Functions That Return Result
  • 有一些库是有自己返回值到Result的转换的,例如
    nom

转一个例子

你可能感兴趣的:(Rust的问号操作符?)