avoid_init_to_null 규칙: 변수를 null로 명시적으로 초기화하지 않기

avoid_init_to_null 규칙: 변수를 null로 명시적으로 초기화하지 않기

avoid_init_to_null는 변수를 null로 명시적으로 초기화하지 말라고 알려주는 린트(lint) 규칙이에요. Dart에서는 nullable 변수를 명시적으로 null로 초기화할 필요가 없고, = null을 붙이는 건 중복에 불과해요.

출처: avoid_init_to_null

본문

설명

Effective Dart에서 가져온 규칙이에요.

DON'T: 변수를 null로 명시적으로 초기화하지 마세요.

변수의 타입이 nullable이 아니거나 final이라면, 확실히 초기화되기 전에 사용하려고 하면 Dart가 컴파일 오류를 알려줘요. 변수가 nullable이고 constfinal이 아니라면, 그 변수는 자동으로 암묵적으로 null로 초기화돼요. Dart에는 "초기화되지 않은 메모리"라는 개념이 없어서, "안전하려고" 변수를 null로 명시적으로 초기화할 필요가 없어요. = null을 붙이는 건 중복이고 불필요해요.

BAD:

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

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

  return bestItem;
}

GOOD:

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 > rulesavoid_init_to_null를 추가해요.

linter:
  rules:
    - avoid_init_to_null

YAML map 문법으로 린터 규칙을 설정한다면 linter > rulesavoid_init_to_null: true를 추가해요.

linter:
  rules:
    avoid_init_to_null: true

더 알아보기