pattern_assignment_not_local_variable
模式赋值只能对局部变量进行赋值。
描述
#当模式赋值(pattern assignment)将值赋给非局部变量时,分析器会产生此诊断。模式不能赋给字段或顶层变量。
示例
#如果使用模式解构能使代码更清晰,那么重写代码,在模式声明中将值赋给局部变量,然后单独赋给非局部变量。
dart
class C {
var x = 0;
void f((int, int) r) {
(x, _) = r;
}
}
常见修复
#如果使用模式赋值能使代码更清晰,那么重写代码,将值赋给局部变量,然后单独赋给非局部变量。
dart
class C {
var x = 0;
void f((int, int) r) {
var (a, _) = r;
x = a;
}
}
如果不用模式赋值代码更清晰,那么重写代码以不使用模式赋值。
dart
class C {
var x = 0;
void f((int, int) r) {
x = r.$1;
}
}