跳到主要内容

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