Pular para o conteúdo principal

pattern_assignment_not_local_variable

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

Only local variables can be assigned in pattern assignments.

Descrição

#

O analisador emite este diagnóstico quando uma atribuição de padrão atribui um valor a algo diferente de uma variável local. Padrões não podem atribuir a campos nem a variáveis de nível superior.

Exemplo

#

Se o código ficar mais limpo ao desestruturar com um padrão, então reescreva o código para atribuir o valor a uma variável local em uma declaração de padrão, atribuindo a variável não local separadamente:

dart
class C {
  var x = 0;
​
  void f((int, int) r) {
    (x, _) = r;
  }
}

Correções comuns

#

Se o código ficar mais limpo usando uma atribuição de padrão, então reescreva o código para atribuir o valor a uma variável local, atribuindo a variável não local separadamente:

dart
class C {
  var x = 0;
​
  void f((int, int) r) {
    var (a, _) = r;
    x = a;
  }
}

Se o código ficar mais limpo sem usar uma atribuição de padrão, então reescreva o código para não usar uma atribuição de padrão:

dart
class C {
  var x = 0;
​
  void f((int, int) r) {
    x = r.$1;
  }
}

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