内容

super_goes_last

在构造函数初始化列表中将 super 调用放在最后。

此规则已在最新的 Dart 版本中删除。

详细信息

#

注意:此规则已在 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 文件中将 super_goes_last 添加到 **linter > rules** 下。

analysis_options.yaml
yaml
linter:
  rules:
    - super_goes_last