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;
}
}