`void` 타입에는 값을 할당하지 마세요

void 타입에는 값을 할당하지 마세요

void는 '값이 없다'는 뜻인데, 그런 타입에 실제 값을 넣으려 하면 이상해지기 마련이에요. void 타입에 무언가를 할당하는 코드는 피하는 게 좋아요.

출처: void_checks

본문

void 타입에는 할당하는 것을 피해야 해요. void는 값이 아예 없는 상황을 나타내니까, 여기에 1 같은 실제 값을 넣으려고 하면 타입 검사에서 걸리죠.

좋지 않은 코드:

class A<T> {
  T value;
  void test(T arg) { }
}

void main() {
  A<void> a = A<void>();
  a.value = 1; // LINT
  a.test(1); // LINT
}

타입 파라미터가 voidA<void>를 만들고, 그 안에 정수 1을 할당하거나 넘기려고 하니 문제가 생겨요.

이 규칙 켜는 법

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

linter:
  rules:
    - void_checks

YAML 맵 문법을 쓴다면 이렇게 해 주면 돼요.

linter:
  rules:
    void_checks: true

더 알아보기