內容

avoid_init_to_null

不要明確地將變數初始化為 null

此規則從 Dart 2.0 開始提供。

規則集:recommendedflutter

此規則具有可用的快速修復

詳細資料

#

來自 Effective Dart

不要明確地將變數初始化為 null

如果變數具有不可為空值的類型,或是 final,如果您嘗試在它被明確初始化之前使用它,Dart 會報告編譯錯誤。如果變數可為空值且不是 constfinal,則會為您隱式地初始化為 null。在 Dart 中沒有「未初始化記憶體」的概念,也沒有必要為了「安全」而明確地將變數初始化為 null。新增 = null 是多餘且不需要的。

錯誤範例

dart
Item? bestDeal(List<Item> cart) {
  Item? bestItem = null;

  for (final item in cart) {
    if (bestItem == null || item.price < bestItem.price) {
      bestItem = item;
    }
  }

  return bestItem;
}

正確範例

dart
Item? bestDeal(List<Item> cart) {
  Item? bestItem;

  for (final item in cart) {
    if (bestItem == null || item.price < bestItem.price) {
      bestItem = item;
    }
  }

  return bestItem;
}

用法

#

若要啟用 avoid_init_to_null 規則,請在 analysis_options.yaml 檔案的 linter > rules 下方新增 avoid_init_to_null

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_init_to_null