Pular para o conteúdo principal

referenced_before_declaration

Detalhes sobre o diagnóstico 'referenced_before_declaration' produzido pelo analisador do Dart.

Local variable '{0}' can't be referenced before it is declared.

Descrição

#

O analisador emite este diagnóstico quando uma variável é referenciada antes de ser declarada. Em Dart, as variáveis são visíveis em todo o bloco onde são declaradas, mas só podem ser referenciadas depois de declaradas.

O analisador também emite uma mensagem de contexto que indica onde a declaração está localizada.

Exemplo

#

O código a seguir gera este diagnóstico porque i é usado antes de ser declarado:

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

Correções comuns

#

Se você pretendia referenciar a variável local, mova a declaração para antes da primeira referência:

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

Se você pretendia referenciar um nome de um escopo externo, como um parâmetro, um campo de instância ou uma variável de nível superior, renomeie a declaração local para que ela não oculte a variável externa.

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

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.