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