gpt4 book ai didi

rust - 如果条件为假,我可以在 Rust 中使用什么运算符来返回特定错误?

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

我有以下代码:

fn foo() -> Result<String, MyError> {
assert_eq!(vec.len(), 2);
unimplemented!()
}

pub enum MyError {
Error1,
Error2,
Error3,
}

如果 vec.len() != 2 我想返回 Err(MyError::Error3) 而不是 panic 。除了

之外,有没有办法更好地编写它(通过使用一些运算符)
if vec.len() != 2 { return Err(MyError::Error3); }

最佳答案

让我们为此编写一个宏!

macro_rules! assert_throw {
($cond:expr, $err:expr) => {
if $cond {
Err($err)?;
}
};
}

你可以像这样使用它:

fn foo(v: &[u32]) -> Result<String, MyError> {
assert_throw!(v.len() != 3, MyError::Error1);

Ok("Ok".to_string())
}

( Playground )

关于rust - 如果条件为假,我可以在 Rust 中使用什么运算符来返回特定错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54515074/

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