rust - 有没有办法显示 Result 作为返回类型是多余的?
问题描述
是否有一个属性喜欢显示作为返回类型多余#[warn(redundant_result_as_return_type)]
的警告?Result
#[derive(Debug)]
struct SomeError();
fn process_some() -> Result<(), SomeError> {
Ok(())
}
fn main() {
process_some().unwrap();
}
(操场)
尽管Result
根本不需要作为返回类型,但此代码不会产生任何警告。
我一直在决定如何从我的项目中使用的 crate 中正确实现函数的错误处理。深入研究函数实现后,发现没有产生错误。
从那时起,我想在我自己的代码中防止这种情况。理想情况下,在使用带有冗余 s 的方法时,从导入的 crates 内部获得此类警告也会很棒Result
,但据我了解,如果不调整代码,就不可能对使用过的 crates 进行此类检查。
这个问题在某种程度上与可能在 Rust 中声明对未使用结果发出警告的函数相反?.
解决方案
不,在编译器或Clippy中都没有这样的警告。当然,您可以向 Clippy 提交问题,建议他们添加它。
我质疑这是一个常见的事件,甚至是一个实际上是一个问题。即使是这样,我相信这样的警告也会有很多缺点:
我使用这种模式来搭建功能,我很确定一旦实现它们就会返回错误。
作为 trait 一部分的方法不能更改返回类型。
您可能将函数作为函数指针或闭包参数传递,并且无法更改返回类型。
更改返回类型会破坏 API 的向后兼容性,因此您必须等到主要版本出现问题。
推荐阅读
- vue.js - Nuxt.js 存储状态问题。错误状态访问主页
- python - 即使调用了模拟,调用的 Python 模拟断言也会失败
- vue.js - 如何在nuxt中简单的深层嵌套路由
- rxjs - RxJS 处理承诺拒绝
- javascript - 获取 Chrome 扩展的 Post 请求失败
- php - SimpleXML PHP - 保存
而不是 <br></br> - python - Django cms 从 Textplugin 中删除 href 属性
- python - numpy 中的优雅解决方案
- javascript - 反应日期选择器 | 日历未在选择日期时关闭
- python - 在熊猫每个新月初重置为零的累积每月总和