use_enums
使用枚举而不是行为类似枚举的类。
此规则从 Dart 2.17 开始可用。
此规则有一个可用的快速修复。
详情
#看起来像枚举的类应该声明为 enum
。
**应该**在适当的情况下使用枚举。
枚举的候选者是:
- 具体类,
- 私有类或只有私有生成构造函数的类,
- 具有两个或多个与类类型相同的静态 const 字段的类,
- 生成构造函数仅在这些静态字段的初始化表达式的顶层被调用的类,
- 没有定义
hashCode
、==
、values
或index
的类, - 没有扩展除
Object
之外的任何类的类,以及 - 在定义库中没有声明子类的类。
要了解有关创建和使用这些枚举的更多信息,请查看声明增强枚举。
错误
dart
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);
}
正确
dart
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);
}
用法
#要启用 use_enums
规则,请在你的analysis_options.yaml
文件中的**linter > 规则**下添加 use_enums
analysis_options.yaml
yaml
linter:
rules:
- use_enums
除非另有说明,否则本网站上的文档反映了 Dart 3.5.3。页面最后更新于 2024-07-03。 查看源代码 或 报告问题.