Pular para o conteúdo principal

no_self_assignments

Saiba mais sobre a regra de lint no_self_assignments.

Estável
Lançado no Dart 3.1

Não atribua uma variável a ela mesma.

Detalhes

#

NÃO FAÇA atribua uma variável a ela mesma. Geralmente isso é um erro.

RUIM:

dart
class C {
  int x;
​
  C(int x) {
    x = x;
  }
}

BOM:

dart
class C {
  int x;
​
  C(int x) : x = x;
}

BOM:

dart
class C {
  int x;
​
  C(int x) {
    this.x = x;
  }
}

RUIM:

dart
class C {
  int _x = 5;
​
  int get x => _x;
​
  set x(int x) {
    _x = x;
    _customUpdateLogic();
  }
​
  void _customUpdateLogic() {
    print('updated');
  }
​
  void example() {
    x = x;
  }
}

BOM:

dart
class C {
  int _x = 5;
​
  int get x => _x;
​
  set x(int x) {
    _x = x;
    _customUpdateLogic();
  }
​
  void _customUpdateLogic() {
    print('updated');
  }
​
  void example() {
    _customUpdateLogic();
  }
}

RUIM:

dart
class C {
  int x = 5;
​
  void update(C other) {
    this.x = this.x;
  }
}

BOM:

dart
class C {
  int x = 5;
​
  void update(C other) {
    this.x = other.x;
  }
}

Ativar

#

Para ativar a regra no_self_assignments, adicione no_self_assignments em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - no_self_assignments

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione no_self_assignments: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    no_self_assignments: true

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