duplicate_variable_pattern
變數 '{0}' 在此模式中已定義。
描述
#當邏輯與模式 (logical-and pattern) 的分支中宣告的變數已在同一模式的先前分支中宣告時,分析器會產生此診斷資訊。
示例
#以下程式碼會產生此診斷資訊,因為變數 a 在邏輯與模式 (logical-and pattern) 的兩個分支中都聲明瞭
dart
void f((int, int) r) {
if (r case (var a, 0) && (0, var a)) {
print(a);
}
}常見修復方法
#如果需要在多個分支中捕獲匹配的值,請更改變數名稱以確保其唯一性
dart
void f((int, int) r) {
if (r case (var a, 0) && (0, var b)) {
print(a + b);
}
}如果只需要在一個分支中捕獲匹配的值,則從除一個分支以外的所有分支中移除變數模式
dart
void f((int, int) r) {
if (r case (var a, 0) && (0, _)) {
print(a);
}
}