Pular para o conteúdo principal

parameter_assignments

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

Invalid assignment to the parameter '{0}'.

Descrição

#

O analisador emite este diagnóstico quando um parâmetro é reatribuído dentro do corpo de uma função. Reatribuir parâmetros pode dificultar a compreensão de qual valor um parâmetro contém em um determinado ponto da função.

Todos os tipos de atribuição são considerados, incluindo:

  • Atribuições diretas de variáveis (com =).
  • Atribuições com null-aware (com ??=).
  • Atribuições compostas (como com +=).
  • Operadores de incremento e decremento (como com ++).
  • Atribuições de variáveis em padrões (como em var (a, b) = (1, 2);).

Há uma exceção para uma única atribuição null-aware (??=) no início de uma função, para parâmetros anuláveis que não têm valor padrão, pois esse é um padrão comum para fornecer valores padrão.

Exemplos

#

O código a seguir produz este diagnóstico porque o parâmetro x recebe um novo valor:

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

O código a seguir produz este diagnóstico porque o parâmetro x é modificado com um incremento pós-fixado:

dart
void f(int x) {
  x++;
}

Correções comuns

#

Introduza uma variável local para armazenar o valor modificado, em vez de reatribuir o parâmetro:

dart
void f(int x) {
  var y = x + 4;
  print(y);
}

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ê.