跳到主要内容

super_goes_last

已移除

super 调用放在构造函数初始化列表的末尾。

详情

#

注意:此规则在 Dart 3.0.0 中已移除;它不再起作用。

应该super 调用放在构造函数初始化列表的末尾。

字段初始化器按照它们在构造函数初始化列表中出现的顺序进行评估。如果您将 super() 调用放在初始化列表的中间,则超类的初始化器将在评估子类的其余初始化器之前立即被评估。

但这并不意味着超类的构造函数体会在那时执行。无论 super 出现在哪里,这总是在所有初始化器运行后发生。初始化器的顺序很少重要,因此 super 在列表中的位置几乎也无关紧要。

养成将其放在末尾的习惯可以提高一致性,在视觉上强化超类的构造函数体何时运行,并可能有助于性能。

错误示例

dart
View(Style style, List children)
    : super(style),
      _children = children {

正确示例

dart
View(Style style, List children)
    : _children = children,
      super(style) {

启用

#

要启用 super_goes_last 规则,请在您的 analysis_options.yaml 文件中的 linter > rules 下添加 super_goes_last

analysis_options.yaml
yaml
linter:
  rules:
    - super_goes_last

如果您改为使用 YAML 映射语法来配置 linter 规则,请在 linter > rules 下添加 super_goes_last: true

analysis_options.yaml
yaml
linter:
  rules:
    super_goes_last: true