跳到主內容

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