필수 파라미터의 기본값

필수 파라미터의 기본값

필수로 지정된 이름 있는 파라미터에 기본값을 넣으려는 순간 analyzer가 알려 주는 진단이에요. 왜 이런 규칙이 있는지 함께 확인해 볼게요.

출처: default_value_on_required_parameter

본문

이름 있는 파라미터에 required 수식어와 기본값이 함께 붙어 있으면 analyzer가 이 진단을 만들어 내요.

이유는 간단해요. 파라미터가 필수라면 호출하는 쪽에서 항상 값을 넘겨 주기 때문에, 기본값은 절대 사용될 일이 없거든요. 쓰지도 않을 값을 적어 두는 셈이죠.

다음 코드가 이 진단을 만들어 내요.

void log({required String message = 'no message'}) {}

흔한 해결책

파라미터가 정말 필수라면 기본값을 빼 주면 돼요.

void log({required String message}) {}

반대로 항상 필수인 건 아니라면, required 수식어를 지우면 돼요.

void log({String message = 'no message'}) {}

더 알아보기

  • Diagnostics — Dart analyzer가 만들어 내는 다른 진단들도 둘러보세요.