Rust 如何要求显式返回语句并禁止隐式返回?

Rust 如何要求显式返回语句并禁止隐式返回?,rust,Rust,我希望通过以下要求确保代码样式的一致性: fn calc()->u32{ 返回1+1; } 禁止这样做: fn calc()->u32{ 1 + 1 } Cargo.toml中有任何设置吗 我不相信货物本身可以做到这一点,但正是为了这个 要启用lint,请放置行#![deny(clippy::implicit_return)]位于根文件的顶部(通常是main.rs或lib.rs)。如果使用隐式返回,现在运行的cargo clippy应该会显示一个错误。您可能还需要禁用具有相反警告的lint:

我希望通过以下要求确保代码样式的一致性:

fn calc()->u32{
返回1+1;
}
禁止这样做:

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

Cargo.toml中有任何设置吗

我不相信货物本身可以做到这一点,但正是为了这个

要启用lint,请放置行
#![deny(clippy::implicit_return)]
位于根文件的顶部(通常是
main.rs
lib.rs
)。如果使用隐式返回,现在运行的
cargo clippy
应该会显示一个错误。您可能还需要禁用具有相反警告的lint:
#![允许(clippy::无需返回)]

示例代码:

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

fn foo() -> u32 {
    0
}

fn main() {
    println!("{}", foo());
}
运行
cargo clippy
后出现的错误:

错误:缺少返回语句
-->src/main.rs:5:5
|
5 |     0
|^帮助:添加“return”,如图所示:`return 0`
|
注:此处定义了棉绒水平
-->src/main.rs:1:9
|
1 | #![拒绝(clippy::隐式返回)]
|         ^^^^^^^^^^^^^^^^^^^^^^^
=帮助:有关更多信息,请访问https://rust-lang.github.io/rust-clippy/master/index.html#implicit_return

这就像把
#define begin{
#define end}
放在你的C文件中,这样你就可以让它看起来像ALGOL:这是一个愚蠢的把戏,只会让你的代码在任何有实际经验的人看来都很奇怪。如果你对学习Rust感兴趣,那么就学习Rust,不要试图让它看起来像C或者其他你已经知道的语言。这并不是说禁止隐式
return
会神奇地将Rust变成面向语句的语言;您仍然需要理解底层语法。如果你不想要一种面向表达式的语言,你应该禁止这种语句:
let i=If条件{0}else{1}并使用
let i;如果条件{i=0;}否则{i=1;}
。对于
match
@trentcl,它可能已经吓跑了大多数阅读代码的人,但是当它不。。。“你必须把回报放在你的代码中”如果他们试图贡献,肯定会。