跳到主要內容

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 map 語法來設定 linter 規則,請在 linter > rules 下新增 super_goes_last: true

analysis_options.yaml
yaml
linter:
  rules:
    super_goes_last: true