メインコンテンツにスキップ

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 > rulesの下にsuper_goes_last: trueを追加します。

analysis_options.yaml
yaml
linter:
  rules:
    super_goes_last: true