跳到主要內容

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