跳到主要内容

unreachable_switch_default

此 default 子句已被之前的 case 覆盖。

描述

#

switch 语句中的 default 子句因所有可匹配值都已被先前的 case 子句匹配而无法匹配任何内容时,分析器会生成此诊断。

示例

#

以下代码会生成此诊断,因为值 E.e1E.e2 已在先前的 case 中匹配:

dart
enum E { e1, e2 }

void f(E x) {
  switch (x) {
    case E.e1:
      print('one');
    case E.e2:
      print('two');
    default:
      print('other');
  }
}

常见修复方法

#

移除不必要的 default 子句

dart
enum E { e1, e2 }
void f(E x) {
  switch (x) {
    case E.e1:
      print('one');
    case E.e2:
      print('two');
  }
}