跳到主内容

read_potentially_unassigned_final

无法读取 final 变量“{0}”,因为它在此处可能未赋值。

描述

#

当在声明时未初始化 final 局部变量,并在编译器无法证明该变量在引用之前已始终初始化的情况下读取该变量时,分析器会生成此诊断信息。

示例

#

以下代码会产生此诊断信息,因为 final 局部变量 x 在可能尚未初始化时被读取(在第 3 行)

dart
int f() {
  final int x;
  return x;
}

常见修复方法

#

确保变量在读取前已初始化

dart
int f(bool b) {
  final int x;
  if (b) {
    x = 0;
  } else {
    x = 1;
  }
  return x;
}