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

avoid_init_to_null

安定版
推奨
修正が利用可能です

変数を明示的に null に初期化しないでください。

詳細

#

From Effective Dart

明示的に変数を null に初期化しないでください。

変数が null 非許容型であるか final の場合、Dart は、変数が確定的に初期化される前に使用しようとするとコンパイルエラーを報告します。変数が null 許容型で、const または final でない場合、それは自動的に 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 > rules の下に avoid_init_to_null: true を追加してください。

analysis_options.yaml
yaml
linter:
  rules:
    avoid_init_to_null: true