跳到主要内容

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