跳到主要内容

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