불필요한 null-aware 대입 규칙

불필요한 null-aware 대입 규칙 (unnecessary_null_aware_assignments)

null-aware 대입 연산자 ??=의 오른쪽에 null을 쓰고 있진 않은지 잡아 주는 린트 규칙이에요. ??=는 왼쪽 값이 null일 때만 대입하는 연산자인데, 오른쪽도 null이면 대입한들 아무 의미가 없게 되거든요.

출처: unnecessary_null_aware_assignments

본문

null-aware 대입에서 null을 피하세요.

null-aware 대입(??=)의 오른쪽에 null을 넣으면 사실상 그 대입이 무의미해져요.

좋지 않은 예를 볼게요. x가 null일 때만 null을 대입하는 셈이라, 결국 아무것도 하지 않는 거나 마찬가지예요.

var x;

x ??= null;

의미가 있게 하려면 오른쪽에 실제 값을 넣어야겠죠.

var x;

x ??= 1;

이렇게 하면 x가 null일 때만 1을 대입하는 자연스러운 동작이 돼요.

활성화하기

unnecessary_null_aware_assignments 규칙을 켜려면 analysis_options.yaml 파일의 linter > rules 아래에 unnecessary_null_aware_assignments를 추가하면 돼요.

linter:
  rules:
    - unnecessary_null_aware_assignments

린트 규칙을 설정할 때 YAML 맵 문법을 쓰고 있다면, linter > rules 아래에 unnecessary_null_aware_assignments: true처럼 넣어 주면 돼요.

linter:
  rules:
    unnecessary_null_aware_assignments: true

더 알아보기

  • 이 규칙은 현재 권장(Recommended) 단계로, 자동 수정(Fix)이 제공돼요.
  • null 처리 전반의 관례를 다듬고 싶다면 avoid_null_checks_in_null_aware_branches 같은 규칙도 함께 확인해 보세요.