跳到主要内容

non_constant_case_expression

Case 表达式必须是常量。

描述

#

当 `case` 子句中的表达式不是常量表达式时,分析器会生成此诊断信息。

示例

#

以下代码会生成此诊断信息,因为 `j` 不是常量

dart
void f(int i, int j) {
  switch (i) {
    case j:
      // ...
      break;
  }
}

常见修复

#

可以将该表达式设为常量表达式,或者将 `switch` 语句重写为一系列 `if` 语句。

dart
void f(int i, int j) {
  if (i == j) {
    // ...
  }
}