跳到主要內容

avoid_init_to_null

穩定
推薦
可修正

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

詳細資訊

#

出自Effective Dart

請勿將變數明確初始化為 null

如果變數具有不可為 null 的類型或為 final,則當您嘗試在明確初始化之前使用它時,Dart 會報告編譯錯誤。如果變數可為 null 且不是 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

如果您改為使用 YAML 地圖語法來設定 linter 規則,請在 linter > rules 下新增 avoid_init_to_null: true

analysis_options.yaml
yaml
linter:
  rules:
    avoid_init_to_null: true