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