目录

literal_only_boolean_表达式

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

此规则从 Dart 2.0 开始可用。

详情

#

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

使用无法评估为除 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_表达式 规则,请在 analysis_options.yaml 文件中的linter > 规则下添加 literal_only_boolean_表达式

analysis_options.yaml
yaml
linter:
  rules:
    - literal_only_boolean_expressions