필수 파라미터의 기본값
필수 파라미터의 기본값
필수로 지정된 이름 있는 파라미터에 기본값을 넣으려는 순간 analyzer가 알려 주는 진단이에요. 왜 이런 규칙이 있는지 함께 확인해 볼게요.
본문
이름 있는 파라미터에 required 수식어와 기본값이 함께 붙어 있으면 analyzer가 이 진단을 만들어 내요.
이유는 간단해요. 파라미터가 필수라면 호출하는 쪽에서 항상 값을 넘겨 주기 때문에, 기본값은 절대 사용될 일이 없거든요. 쓰지도 않을 값을 적어 두는 셈이죠.
다음 코드가 이 진단을 만들어 내요.
void log({required String message = 'no message'}) {}
흔한 해결책
파라미터가 정말 필수라면 기본값을 빼 주면 돼요.
void log({required String message}) {}
반대로 항상 필수인 건 아니라면, required 수식어를 지우면 돼요.
void log({String message = 'no message'}) {}
더 알아보기
- Diagnostics — Dart analyzer가 만들어 내는 다른 진단들도 둘러보세요.