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