跳到主要內容

missing_variable_pattern

邏輯或模式的此分支中缺少變數模式“{0}”。

描述

#

當邏輯或模式的一個分支未宣告在同一模式的另一個分支中已宣告的變數時,分析器會產生此診斷資訊。

示例

#

以下程式碼會產生此診斷資訊,因為邏輯或模式的右側未宣告變數 a

dart
void f((int, int) r) {
  if (r case (var a, 0) || (0, _)) {
    print(a);
  }
}

常見修復方法

#

如果變數需要在受控語句中被引用,則在邏輯或模式的每個分支中新增變數宣告

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 (_, 0) || (0, _)) {
    print('found a zero');
  }
}

如果變數在一個模式分支匹配時需要引用,而在另一個分支匹配時不需要引用,則將該模式拆分成兩個部分

dart
void f((int, int) r) {
  switch (r) {
    case (var a, 0):
      print(a);
    case (0, _):
      print('found a zero');
  }
}