인자 개수 검증

인자 개수 검증 (Validating the number of Arguments)

Octave에서는 함수 정의의 시작 부분에서 다음 관용구가 자주 보여요.

출처: 문서

본문

if (nargin  max_inputs)
  print_usage ();
endif

이 코드는 입력 개수가 틀렸을 때마다 함수 실행을 멈추고 올바른 호출 방법에 대한 메시지를 출력해요.

비슷한 오류 검사는 narginchknargoutchk가 제공해요.

narginchk

narginchk (minargs, maxargs)

입력 인자의 개수가 올바른지 확인해요. 호출하는 함수의 인자 개수가 minargsmaxargs 범위를 벗어나면 오류 메시지를 생성하고, 그렇지 않으면 아무것도 하지 않아요.

minargsmaxargs 모두 스칼라 숫자 값이어야 해요. 0, Inf, 음수 값은 모두 허용되며, minargsmaxargs가 같아도 돼요.

주의할 점은 이 함수가 호출자(caller)에서 nargin을 평가한다는 거예요.

nargoutchk

nargoutchk (minargs, maxargs)
msgstr = nargoutchk (minargs, maxargs, nargs)
msgstr = nargoutchk (minargs, maxargs, nargs, "string")
msgstruct = nargoutchk (minargs, maxargs, nargs, "struct")

출력 인자의 개수가 올바른지 확인해요. 첫 번째 형태에서는 인자 개수가 minargsmaxargs 사이가 아니면 오류를 반환하고, 그렇지 않으면 아무것도 하지 않아요. 이 함수는 호출자에서 nargout 값을 평가하므로 그 값이 조작되지 않아야 해요.

minargsmaxargs 모두 숫자 스칼라여야 해요. 0, Inf, 음수는 모두 유효하며 두 값이 같아도 돼요.

하위 호환성을 위해, 다른 형태들은 요청된 출력 개수가 유효하지 않으면 적절한 오류 메시지 문자열(또는 구조체)을 반환해요.

이 함수는 함수에 전달된 출력 인자의 개수가 허용 범위 내에 있는지 확인할 때 유용해요.

더 알아보기

  • narginnargout에 대한 내용도 함께 보면 좋아요.
  • 실행 중 오류를 다루는 방법은 오류와 경고 항목을 참고하세요.