pattern_variable_assignment_inside_guard
模式变量不能在封闭的受守卫模式的守卫 (guard) 中被赋值。
描述
#当模式变量在守卫 (guard) (when
) 子句中被赋值时,分析器会产生此诊断信息。
示例
#以下代码会产生此诊断信息,因为变量 a
在守卫 (guard) 子句中被赋值
dart
void f(int x) {
if (x case var a when (a = 1) > 0) {
print(a);
}
}
常见修复
#如果需要捕获某个值,则将其赋给不同的变量
dart
void f(int x) {
var b;
if (x case var a when (b = 1) > 0) {
print(a + b);
}
}
如果不需要捕获值,则删除赋值操作
dart
void f(int x) {
if (x case var a when 1 > 0) {
print(a);
}
}