enum Result<T, E> {
Ok(T),
Err(E),
}
Rust的異常處理是通過 Result 的 Ok 和 Err 成員來傳遞和包裹錯誤信息.
然而錯誤信息的處理一般都是要通過match來對類型進(jìn)行比較, 所以很多時候代碼比較冗余, 通過?符號來簡化Ok和Err的判斷。
- 使用?的函數(shù)的返回值必須是Result的結(jié)構(gòu)。
The?Operator Can Be Used in Functions That ReturnResult - 有一些庫是有自己返回值到Result的轉(zhuǎn)換的,例如
nom
轉(zhuǎn)一個例子