use std::error::Error;
use std::fmt::{Debug, Display, Formatter};
pub fn test() {
#[derive(Debug)]
struct MyErr;
impl Display for MyErr {
fn fmt(&self, f: &mut Formatter) -> std::fmt::Result {
f.write_str("MyErr happened")
}
}
impl Error for MyErr {}
// 三种返回 error 方式的区别是什么? 待解答
fn f3() -> Result<i32, impl Error> {
Result::Err(MyErr)
}
fn f3_1() -> Result<i32, Box<dyn Error>> {
Result::Err(Box::new(MyErr))
}
fn f3_2() -> Result<i32, &'static dyn Error> {
Result::Err(&MyErr)
}
}
求大佬解答,给个链接也行~