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

更新日期:2021-12-01

3K+ 次浏览

[开启你的事业]

[完成课程获得认证]

[现在开始]
[广告]