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