跳到主要內容

referenced_before_declaration

區域性變數 '{0}' 不能在其宣告前被引用。

描述

#

當變數在其宣告前被引用時,分析器會產生此診斷。在 Dart 中,變數在其宣告的塊中處處可見,但只能在其聲明後被引用。

分析器還會產生一個上下文訊息,指示宣告的位置。

示例

#

以下程式碼會產生此診斷,因為 i 在其宣告前就被使用了

dart
void f() {
  print(i);
  int i = 5;
}

常見修復方法

#

如果您打算引用該區域性變數,請將其宣告移到第一次引用之前

dart
void f() {
  int i = 5;
  print(i);
}

如果您打算引用外部作用域中的名稱,例如引數、例項欄位或頂層變數,則請重新命名區域性宣告,使其不會隱藏外部變數。

dart
void f(int i) {
  print(i);
  int x = 5;
  print(x);
}