跳到主要內容

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