no_duplicate_case_values
case 子句 ('{0}') 的值与较早的 case 子句 ('{1}') 的值相等。
描述
#当同一 switch
语句中有两个或多个 case
子句具有相同的值时,分析器会产生此诊断。
第一个 case
子句之后的任何同值 case
子句都无法执行,因此存在重复的 case
子句会造成误导。
此诊断通常是由于输入错误或常量值发生变化所致。
示例
#以下代码会产生此诊断,因为有两个 case 子句具有相同的值 (1)
dart
// @dart = 2.14
void f(int v) {
switch (v) {
case 1:
break;
case 1:
break;
}
}
常见修复方法
#如果其中一个子句应该具有不同的值,则更改该子句的值
dart
void f(int v) {
switch (v) {
case 1:
break;
case 2:
break;
}
}
如果值正确,则将语句合并到一个子句中
dart
void f(int v) {
switch (v) {
case 1:
break;
}
}