跳到主要內容

avoid_init_to_null

穩定
推薦
有可用的修復

不要將變數顯式初始化為 null

詳情

#

來自 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

如果你使用的是 YAML 對映語法來配置 Linter 規則,請在 linter > rules 下新增 avoid_init_to_null: true

analysis_options.yaml
yaml
linter:
  rules:
    avoid_init_to_null: true