跳到主要内容

constant_pattern_with_non_constant_expression

常量模式的表达式必须是有效的常量。

描述

#

当常量模式的表达式不是有效的常量时,分析器会生成此诊断信息。

示例

#

以下代码会生成此诊断信息,因为常量模式 i 不是常量

dart
void f(int e, int i) {
  switch (e) {
    case i:
      break;
  }
}

常见修复方法

#

如果需要匹配的值已知,则将表达式替换为常量

dart
void f(int e, int i) {
  switch (e) {
    case 0:
      break;
  }
}

如果需要匹配的值未知,则重写代码,不使用模式

dart
void f(int e, int i) {
  if (e == i) {}
}