late_final_local_already_assigned
late final 區域性變數已被賦值。
描述
#當分析器能夠證明一個同時被標記為 late 和 final 的區域性變數,在另一個賦值發生時已被賦值,分析器就會生成此診斷。
由於 final 變數只能被賦值一次,後續的賦值操作必然會失敗,因此會被標記。
示例
#以下程式碼會生成此診斷,因為 final 變數 v 在兩個地方被賦值
dart
int f() {
late final int v;
v = 0;
v += 1;
return v;
}常見修復方法
#如果需要能夠重新為變數賦值,請移除 final 關鍵字
dart
int f() {
late int v;
v = 0;
v += 1;
return v;
}如果不需要重新為變數賦值,請移除除第一次賦值之外的所有賦值操作
dart
int f() {
late final int v;
v = 0;
return v;
}