メインコンテンツにスキップ

宣言前に参照

ローカル変数 '{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);
}