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)
}
}
求大佬解答,给个链接也行~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.