# narginchk


验证输入参数数目

函数库: TyBase

# 语法

narginchk(minArgs,maxArgs,varargin)

# 说明

narginchk(minArgs,maxArgs,varargin)验证当前执行的函数调用中的输入参数数目。如果调用中指定的输入数目小于 minArgs 或大于 maxArgs,narginchk 将引发错误。如果输入数目在 minArgs 与 maxArgs 之间(包括二者),则 narginchk 不会执行任何操作。varargin 是函数定义语句中的一个输入变量,允许函数接受任意数量的输入参数。示例

# 示例

验证输入数目在预期范围内

确认使用最少两个、最多五个输入参数调用函数。

创建checkInputs函数,该函数使用 narginchk 验证是否使用了有效的输入数目来调用该函数。函数签名指示 checkInputs 需要两个输入参数,并且最多接受三个附加的可选参数。

using TyBase
function checkInputs(A, B, varargin...)
    minArgs = 2
    maxArgs = 5
    args = [A, B, varargin...]
    len = length(varargin)
    narginchk(minArgs, maxArgs, args...)
    print("Received 2 required and $len optional inputs\n")
end

使用一个输入参数调用该函数。

try
    checkInputs(13)
catch
    error("Not enough input arguments.")
end

使用五个输入参数再次调用该函数。

checkInputs(13, 7, 42, 1701, 5)
Received 2 required and 3 optional inputs

使用六个输入参数再次调用该函数。

checkInputs(13, 7, 42, 1701, 5, 88)
ERROR: LoadError: Too many input arguments.

# 输入参数

minArgs - 接受的最小输入数目
标量

接受的最小输入数目,指定为标量。

数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64

maxArgs - 接受的最大输入数目
标量

接受的最大输入数目,指定为标量。

数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | UInt8 | UInt16 | UInt32 | UInt64

varargin - 可变长度输入参数列表
任意数量

varargin 是函数定义语句中的一个输入变量,允许函数接受任意数量的输入参数。

# 提示

  • 要验证参数有最小数目限制,但没有最大数目限制,请将 maxArgs 设置为 Inf。例如:当输入少于五个时,narginchk(5,Inf) 将引发错误。

  • 要验证参数数目为一个确切数,请为 minArgs 和 maxArgs 指定相同的值。例如:如果输入并非正好三个,narginchk(3,3) 会引发错误。

如果调用具有太少输入的函数,消息标识符和消息将如下所示:

LoadError: Not enough input arguments.

如果提供的输入太多,消息标识符和消息将如下所示:

ERROR: LoadError: Too many input arguments.

# 另请参阅

varargin