위치 인자가 부족할 때

위치 인자가 부족할 때 (not_enough_positional_arguments)

함수나 메서드를 호출할 때 필요한 위치 인자(positional argument)보다 적은 수의 인자를 넘긴 경우 나오는 진단이에요. 메시지는 몇 개를 기대했는데 몇 개를 찾았다는 식으로 알려줘요.

  • 1 positional argument expected by '{0}', but 0 found.
  • 1 positional argument expected, but 0 found.
  • {0} positional arguments expected by '{1}', but {2} found.
  • {0} positional arguments expected, but {1} found.

출처: not_enough_positional_arguments

본문

언제 발생하나요?

메서드나 함수를 호출할 때, 필수로 요구되는 위치 매개변수(required positional parameter)의 개수보다 적은 수의 위치 인자가 전달되면 애널라이저가 이 진단을 만들어요. "필수"라는 말이 중요해요 — 선택적이거나 이름 지정 인자로 받는 부분은 여기 해당하지 않아요.

예시

다음 코드는 f가 필수 매개변수 두 개를 선언했는데, 호출부에서 인자를 하나만 넘겨서 이 진단이 발생해요.

void f(int a, int b) {}
void g() {
  f(0);
}

fab 두 개를 요구하는데, f(0)은 하나만 전달하고 있죠.

어떻게 고치나요?

나머지 매개변수에 해당하는 인자를 추가해 주면 돼요.

void f(int a, int b) {}
void g() {
  f(0, 1);
}

이렇게 둘째 인자까지 채워 주면 호출이 정상적으로 성립해요.

더 알아보기

  • Dart의 함수와 인자 규칙은 Functions 문서에서 확인할 수 있어요.
  • 다른 진단과 함께 보려면 Diagnostics 목록을 참고하세요.