我想通过要求以下内容来确保代码风格一致:

fn calc() -> u32 {
    return 1 + 1;
}

并禁止这样做:

fn calc() -> u32 {
    1 + 1
}

Cargo.toml中有任何设置吗?

最佳答案

我不相信这可以通过Cargo本身完成,但是Clippy has a lint可以做到这一点。

要启用棉绒,请将#![deny(clippy::implicit_return)]行放置在根文件的顶部(通常是main.rslib.rs)。如果使用隐式返回,则现在运行cargo clippy应该显示错误。您可能还希望禁用具有相反警告的棉绒:#![allow(clippy::needless_return)]

示例代码:

#![deny(clippy::implicit_return)]
#![allow(clippy::needless_return)]

fn foo() -> u32 {
    0
}

fn main() {
    println!("{}", foo());
}

和运行cargo clippy后的错误:

error: missing return statement
 --> src/main.rs:5:5
  |
5 |     0
  |     ^ help: add `return` as shown: `return 0`
  |
note: lint level defined here
 --> src/main.rs:1:9
  |
1 | #![deny(clippy::implicit_return)]
  |         ^^^^^^^^^^^^^^^^^^^^^^^
  = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_return

10-06 09:11