use_ enums
Saiba mais sobre a regra de lint use_enums.
Use enums em vez de classes que se comportam como enums.
Detalhes
#Classes que parecem enumerações devem ser declaradas como enums.
FAÇA usar enums quando for apropriado.
Candidatas a enums são classes que:
- são concretas,
- são privadas ou têm apenas construtores generativos privados,
- têm dois ou mais campos
static constcom o mesmo tipo da classe, - têm construtores generativos que são invocados apenas no nível superior da expressão de inicialização desses campos estáticos,
- não definem
hashCode,==,valuesouindex, - não estendem nenhuma classe além de
Object, e - não têm subclasses declaradas na biblioteca que as define.
Para saber mais sobre como criar e usar esses enums, veja Declarando enums aprimorados.
RUIM:
class LogPriority {
static const error = LogPriority._(1, 'Error');
static const warning = LogPriority._(2, 'Warning');
static const log = LogPriority._unknown('Log');
final String prefix;
final int priority;
const LogPriority._(this.priority, this.prefix);
const LogPriority._unknown(String prefix) : this._(-1, prefix);
}
BOM:
enum LogPriority {
error(1, 'Error'),
warning(2, 'Warning'),
log.unknown('Log');
final String prefix;
final int priority;
const LogPriority(this.priority, this.prefix);
const LogPriority.unknown(String prefix) : this(-1, prefix);
}
Ativar
#
Para ativar a regra use_enums, adicione use_enums em
linter > rules no seu arquivo analysis_options.yaml:
linter:
rules:
- use_enums
Se você usa a sintaxe de mapa YAML para configurar as regras de lint,
adicione use_enums: true em linter > rules:
linter:
rules:
use_enums: 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ê.