Null 대신 void를 사용하세요

Null 대신 void를 사용하세요

Null 타입은 정말로 void를 원하지 않는다고 확신할 때만 쓰세요. void로 충분한 자리에 Null 타입을 쓰지 말자는 린트 규칙이에요. 함께 볼게요.

출처: prefer_void_to_null

본문

void가 통할 자리에서는 Null 타입을 쓰지 마세요.

BAD:

Null f() {}
Future<Null> f() {}
Stream<Null> f() {}
f(Null x) {}

GOOD:

void f() {}
Future<void> f() {}
Stream<void> f() {}
f(void x) {}

몇 가지 예외가 있어요. 특수 함수 타입을 만들 때는 이렇게 쓸 수 있어요:

Null Function(Null, Null);

그리고 어떤 타입의 map이나 list든 읽기 전용 위치에 안전하게 넘길 수 있는 빈 리터럴을 만들 때도 쓸 수 있어요:

<Null>[];
<int, Null>{};

켜는 방법

prefer_void_to_null 규칙을 사용하려면 analysis_options.yaml 파일의 linter > rules 아래에 prefer_void_to_null을 추가해요:

linter:
  rules:
    - prefer_void_to_null

만약 YAML 맵 문법으로 린트 규칙을 설정한다면 linter > rules 아래에 prefer_void_to_null: true를 추가하면 돼요:

linter:
  rules:
    prefer_void_to_null: true

더 알아보기