Pular para o conteúdo principal

prefer_final_fields

Saiba mais sobre a regra de lint prefer_final_fields.

Estável
Recomendado
Correção disponível

Campo privado poderia ser final.

Detalhes

#

Do Effective Dart:

FAÇA preferir declarar campos privados como final se eles não forem reatribuídos depois na biblioteca.

Declarar campos como final quando possível é uma boa prática, porque ajuda a evitar reatribuições acidentais e permite que o compilador faça otimizações.

RUIM:

dart
class BadImmutable {
  var _label = 'hola mundo! BadImmutable'; // LINT
  var label = 'hola mundo! BadImmutable'; // OK
}

RUIM:

dart
class MultipleMutable {
  var _label = 'hola mundo! GoodMutable', _offender = 'mumble mumble!'; // LINT
  var _someOther; // LINT
​
  MultipleMutable() : _someOther = 5;
​
  MultipleMutable(this._someOther);
​
  void changeLabel() {
    _label= 'hello world! GoodMutable';
  }
}

BOM:

dart
class GoodImmutable {
  final label = 'hola mundo! BadImmutable', bla = 5; // OK
  final _label = 'hola mundo! BadImmutable', _bla = 5; // OK
}

BOM:

dart
class GoodMutable {
  var _label = 'hola mundo! GoodMutable';
​
  void changeLabel() {
    _label = 'hello world! GoodMutable';
  }
}

RUIM:

dart
class AssignedInAllConstructors {
  var _label; // LINT
  AssignedInAllConstructors(this._label);
  AssignedInAllConstructors.withDefault() : _label = 'Hello';
}

BOM:

dart
class NotAssignedInAllConstructors {
  var _label; // OK
  NotAssignedInAllConstructors();
  NotAssignedInAllConstructors.withDefault() : _label = 'Hello';
}

Ativar

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - prefer_final_fields

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

analysis_options.yaml
yaml
linter:
  rules:
    prefer_final_fields: 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ê.