prefer_ initializing_ formals
Saiba mais sobre a regra de lint prefer_initializing_formals.
Use parâmetros formais de inicialização quando possível.
Detalhes
#FAÇA usar parâmetros formais de inicialização quando possível.
Usar parâmetros formais de inicialização quando possível deixa seu código mais conciso.
RUIM:
class Point {
num? x, y;
Point(num x, num y) {
this.x = x;
this.y = y;
}
}
BOM:
class Point {
num? x, y;
Point(num this.x, num this.y);
}
RUIM:
class Point {
num? x, y;
Point({num? x, num? y}) {
this.x = x;
this.y = y;
}
}
BOM:
class Point {
num? x, y;
Point({required num this.x, required num this.y});
}
NOTA: Esta regra não gera lint para parâmetros nomeados, a menos que o nome do parâmetro e o nome do campo sejam iguais. O motivo é que resolver esse lint exigiria renomear o campo ou renomear o parâmetro, e ambas as ações poderiam ser uma mudança que quebra compatibilidade. Por exemplo, o código a seguir não gera lint:
class Point {
bool? isEnabled;
Point({bool? enabled}) {
this.isEnabled = enabled; // OK
}
}
NOTA:
Observe também que é possível impor um tipo mais restrito do que o do campo inicializado,
com um parâmetro formal de inicialização. No exemplo a seguir, o construtor sem nome
Bid
exige um int não nulo, apesar de amount ser declarado como anulável (int?).
class Bid {
final int? amount;
Bid(int this.amount);
Bid.pass() : amount = null;
}
Ativar
#
Para ativar a regra prefer_initializing_formals, adicione prefer_initializing_formals
em
linter > rules no seu arquivo analysis_options.yaml:
linter:
rules:
- prefer_initializing_formals
Se você usa a sintaxe de mapa YAML para configurar as regras de lint,
adicione prefer_initializing_formals: true em linter > rules:
linter:
rules:
prefer_initializing_formals: true
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.