跳到主内容

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