在形式参数列表中,可以使用伪占位符 ~ 来代替名称。这表示应忽略相应的参数值,而不将其存储到任何变量中。
function val = pick2nd (~, arg2) val = arg2; endfunction
nargin 的值不受此声明的影响。
返回参数也可以使用相同的语法来忽略。例如,sort 函数既返回排序后的值,也返回原始输入的一个索引向量,使用该索引向量可以得到排序后的输出。忽略第二个输出很简单——不请求多于一个输出即可。但如果要忽略第一个输出而只计算第二个输出,则需要使用 ~ 占位符。
x = [2, 3, 1]; [s, i] = sort (x) ⇒ s = 1 2 3 i = 3 1 2 [~, i] = sort (x) ⇒ i = 3 1 2
使用 ~ 占位符时,必须使用逗号(而非空格)来分隔输出参数。否则,解释器会将 ~ 视为逻辑非运算符。
[~ i] = sort (x) parse error: invalid left hand side of assignment
函数可以利用被忽略的输出来减少执行的计算次数。为此,请使用 isargout 函数来查询是否需要输出参数。例如:
function [out1, out2] = long_function (x, y, z)
if (isargout (1))
## Long calculation
...
out1 = result;
endif
...
endfunction
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-4