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+ 次瀏覽

[開啟你的事業]

[完成課程獲得認證]

[現在開始]
[廣告]
© . All rights reserved.