11.9.1 验证参数的数量

在 Octave 中,以下惯用写法经常出现在函数定义的开头:

if (nargin < min_#_inputs || nargin > max_#_inputs)
  print_usage ();
endif

这会停止函数执行,并在输入数量错误时打印关于如何正确调用该函数的消息。

类似的错误检查由 narginchknargoutchk 提供。

 
narginchk (minargs, maxargs)

检查输入参数的数量是否正确。

如果调用函数中的参数数量不在 minargsmaxargs 范围内,则生成错误信息。否则,不执行任何操作。

minargsmaxargs 都必须为标量数值。零、Inf 和负值都是允许的,且 minargsmaxargs 可以相等。

请注意,此函数会计算调用者中的 nargin 值。

另请参阅:nargoutchkerrornargoutnargin

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

检查输出参数的数量是否正确。

在第一种形式中,如果参数数量不在 minargsmaxargs 之间,则返回错误。否则,不执行任何操作。请注意,此函数会计算调用者中的 nargout 值,因此其值必须未被篡改。

minargsmaxargs 都必须为数值标量。零、Inf 和负值都是有效的,且它们可以具有相同的值。

为了向后兼容,如果请求的输出数量无效,其他形式将返回适当的错误消息字符串(或结构体)。

这对于检查提供给函数的输出参数数量是否在可接受的范围内非常有用。

另请参阅:narginchkerrornargoutnargin


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-4