我在 Rust 中发现了这种趋势,即 Result
中的错误是以这种方式返回的:
fn do_something() -> Result<SomeType, Box<dyn std::error::Error>> {
// ...
}
为什么错误是动态的?由于我来自C++背景并且更喜欢std::variant
而非经典的多态(我相对较新于rust),我对动态分配很过敏,所以只有在必要时才使用它们。我也发现Rust的枚举很棒,因为其中包括变量。请问为什么没有将错误用作枚举是标准/首选/常见的呢?
Box<dyn Error>
是它们所有错误类型的共同点。但在库中使用这种方法绝不是我的建议。 - E net4