跳到主要内容

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