跳到主內容

missing_named_pattern_field_name

Getter 名稱未明確指定,並且模式不是變數。

描述

#

分析器在物件模式中遇到以下情況時會產生此診斷:屬性的規範及其用於匹配屬性值的模式不包含以下任一項

  • 冒號前的 getter 名稱
  • 可推斷出 getter 名稱的變數模式

示例

#

以下程式碼會產生此診斷,因為物件模式 (C(:0)) 中冒號前沒有 getter 名稱,冒號後也沒有變數模式。

dart
abstract class C {
  int get f;
}

void f(C c) {
  switch (c) {
    case C(:0):
      break;
  }
}

常見修復方法

#

如果你需要在模式的作用域內使用屬性的實際值,則新增一個變數模式,其中變數的名稱與要匹配的屬性名稱相同

dart
abstract class C {
  int get f;
}

void f(C c) {
  switch (c) {
    case C(:var f) when f == 0:
      print(f);
  }
}

如果你不需要在模式的作用域內使用屬性的實際值,則在冒號前新增要匹配的屬性名稱

dart
abstract class C {
  int get f;
}

void f(C c) {
  switch (c) {
    case C(f: 0):
      break;
  }
}