Lua 编程中数量可变的参数
Lua 中有一些函数接受数量可变的参数。在我们需要使用许多不同参数(长度可能不同)运行相同函数的情况下,它们非常有用。因此,我们不必创建不同的函数,而是将它们以可变参数的方式传递给函数。
语法
function add(...) -- function code end
请注意,参数列表中的三个点 (...) 表示函数具有数量可变的参数。每当调用此函数时,其所有参数都会收集到单个表中,函数以一个名为 arg 的隐藏参数的形式引用该表。
示例
现在,我们来看一个将数量可变的参数传递给函数的示例。该函数将用于计算传递给它作为参数的数组中存在最小值。另外,它将用于找到最小值的索引,并且我们将打印最小值和最小索引。
function minimumvalue (...) local mi = 1 -- maximum index local m = 100 -- maximum value local args = {...} for i,val in ipairs(args) do if val < m then mi = i m = val end end return m, mi end print(minimumvalue(8,10,23,12,5))
输出
5 5
请注意,我们现在可以利用这样一个事实,即我们可以在同一个函数中拥有数量可变的参数,因此,当我们再次调用同一个函数时,我们将获得最小值和最小索引。
示例
function minimumvalue (...) local mi = 1 -- maximum index local m = 100 -- maximum value local args = {...} for i,val in ipairs(args) do if val < m then mi = i m = val end end return m, mi end print(minimumvalue(8,10,23,12,5)) print(minimumvalue(1,2,3))
输出
5 5 1 1
[广告]