我确实使用match语句检查赋值时的函数结果。在某些情况下,我想退出程序并显示一条错误消息panic!()。但是我如何创建一个可以在任何地方使用的函数或宏?
例子:
let args = match args::Args::parse() {
Ok(args) => args,
Err(e) => someerror("bla")
};
let mut statedoc = match state_loader.load() {
Ok(states) => states,
Err(e) => someerror("blub")
};
Run Code Online (Sandbox Code Playgroud)
someerror()各地复工需要什么?
小智 6
一种方法是使用发散函数。使用以下语法:
fn someerror(msg: &str) -> ! { // Note the `-> !` here
eprintln!("Error: {}", msg);
panic!();
}
fn main() {
let r: Result<i32, &str> = Err("hello");
let x = match r {
Ok(x) => x,
Err(e) => someerror(e),
};
println!("x = {}", x);
}
Run Code Online (Sandbox Code Playgroud)