跳到主要内容

duplicate_pattern_assignment_variable

变量“{0}”已在此模式中被赋值。

描述

#

当单个模式变量在同一模式赋值中多次被赋值时,分析器会产生此诊断。

示例

#

以下代码会产生此诊断,因为变量 a 在模式 (a, a) 中被赋值了两次。

dart
int f((int, int) r) {
  int a;
  (a, a) = r;
  return a;
}

常见修复方法

#

如果您需要捕获所有值,请为每个匹配的子模式使用唯一的变量。

dart
int f((int, int) r) {
  int a, b;
  (a, b) = r;
  return a + b;
}

如果某些值无需捕获,则使用通配符模式 _ 以避免将值绑定到变量。

dart
int f((int, int) r) {
  int a;
  (_, a) = r;
  return a;
}