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