인자 개수 검증
인자 개수 검증 (Validating the number of Arguments)
Octave에서는 함수 정의의 시작 부분에서 다음 관용구가 자주 보여요.
출처: 문서
본문
if (nargin max_inputs)
print_usage ();
endif
이 코드는 입력 개수가 틀렸을 때마다 함수 실행을 멈추고 올바른 호출 방법에 대한 메시지를 출력해요.
비슷한 오류 검사는 narginchk와 nargoutchk가 제공해요.
narginchk
narginchk (minargs, maxargs)
입력 인자의 개수가 올바른지 확인해요. 호출하는 함수의 인자 개수가 minargs와 maxargs 범위를 벗어나면 오류 메시지를 생성하고, 그렇지 않으면 아무것도 하지 않아요.
minargs와 maxargs 모두 스칼라 숫자 값이어야 해요. 0, Inf, 음수 값은 모두 허용되며, minargs와 maxargs가 같아도 돼요.
주의할 점은 이 함수가 호출자(caller)에서 nargin을 평가한다는 거예요.
nargoutchk
nargoutchk (minargs, maxargs)
msgstr = nargoutchk (minargs, maxargs, nargs)
msgstr = nargoutchk (minargs, maxargs, nargs, "string")
msgstruct = nargoutchk (minargs, maxargs, nargs, "struct")
출력 인자의 개수가 올바른지 확인해요. 첫 번째 형태에서는 인자 개수가 minargs와 maxargs 사이가 아니면 오류를 반환하고, 그렇지 않으면 아무것도 하지 않아요. 이 함수는 호출자에서 nargout 값을 평가하므로 그 값이 조작되지 않아야 해요.
minargs와 maxargs 모두 숫자 스칼라여야 해요. 0, Inf, 음수는 모두 유효하며 두 값이 같아도 돼요.
하위 호환성을 위해, 다른 형태들은 요청된 출력 개수가 유효하지 않으면 적절한 오류 메시지 문자열(또는 구조체)을 반환해요.
이 함수는 함수에 전달된 출력 인자의 개수가 허용 범위 내에 있는지 확인할 때 유용해요.
더 알아보기
nargin과nargout에 대한 내용도 함께 보면 좋아요.- 실행 중 오류를 다루는 방법은 오류와 경고 항목을 참고하세요.