G.TYP.BOL.02 如果 match 匹配表达式为布尔类型,宜使用 if 表达式来代替

【级别】 建议

【描述】

对于布尔表达式更倾向于使用 if ... else ...,相比 match 模式匹配更有利于代码可读性。

【反例】


#![allow(unused)]
#![warn(clippy::match_bool)]

fn main() {
fn foo() {}
fn bar() {}
let condition: bool = true;
// 不符合
match condition {
    true => foo(),
    false => bar(),
}
}

【正例】


#![allow(unused)]
#![warn(clippy::match_bool)]

fn main() {
fn foo() {}
fn bar() {}
let condition: bool = true;
// 符合
if condition {
    foo();
} else {
    bar();
}
}

【Lint 检测】

lint nameClippy 可检测Rustc 可检测Lint Grouplevel
logic_bug yesnocorrectnessdeny
match_boolyesnopedanticallow