gpt4 book ai didi

rust - 在 Result> 的情况下简化 Rust 中的错误处理

转载 作者:行者123 更新时间:2023-11-29 08:23:11 25 4
gpt4 key购买 nike

想象一下我有一个 Result<Option<T>> 的函数结果。

如果ResultErrOptionNone , 我要返回 MyError错误。

你有什么建议?

最佳答案

一个解决方案是使用模式匹配:

fn my_fun() -> Result<T, MyError> {
if let Ok(Some(thing)) = other_fun() {
Ok(thing)
} else {
Err(MyError{})
}
}

fn my_fun() -> Result<T, MyError> {
match other_fun() {
Ok(Some(thing)) => Ok(thing),
_ => Err(MyError{}),
}
}

如果你的错误实现了From<TheOtherError> ,这可能是个好主意,你也可以这样做

fn my_fun() -> Result<T, MyError> {
other_fun()?.ok_or(MyError{})
}

关于rust - 在 Result<Option<T>> 的情况下简化 Rust 中的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58255829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com