跳到主要内容

literal_only_boolean_expressions

稳定

仅由字面量组成的布尔表达式。

详情

#

不要测试仅由字面量组成的条件,因为其值可以在编译时推断。

使用条件始终为 FALSE 的条件语句会导致代码块无法执行。如果条件始终评估为 true,则条件语句完全冗余,并降低了代码的可读性。这很可能与程序员的意图不符。应移除该条件,或进行更新使其不总是评估为 truefalse

反例

dart
void bad() {
  if (true) {} // LINT
}

反例

dart
void bad() {
  if (true && 1 != 0) {} // LINT
}

反例

dart
void bad() {
  if (1 != 0 && true) {} // LINT
}

反例

dart
void bad() {
  if (1 < 0 && true) {} // LINT
}

反例

dart
void bad() {
  if (true && false) {} // LINT
}

反例

dart
void bad() {
  if (1 != 0) {} // LINT
}

反例

dart
void bad() {
  if (true && 1 != 0 || 3 < 4) {} // LINT
}

反例

dart
void bad() {
  if (1 != 0 || 3 < 4 && true) {} // LINT
}

注意:while (true) { } 这种常见用法是一个例外,因为它通常比等效的 for (;;) 更受欢迎。

正例

dart
void good() {
  while (true) {
    // Do stuff.
  }
}

启用

#

要启用 literal_only_boolean_expressions 规则,请在您的 analysis_options.yaml 文件中 linter > rules 下添加 literal_only_boolean_expressions

analysis_options.yaml
yaml
linter:
  rules:
    - literal_only_boolean_expressions

如果您使用 YAML 映射语法配置 linter 规则,请在 linter > rules 下添加 literal_only_boolean_expressions: true

analysis_options.yaml
yaml
linter:
  rules:
    literal_only_boolean_expressions: true