function funs(...)
Lua 函數可以接受可變數目的參數,和 C 語言類似,在函數參數清單中使用三點 ... 表示函數有可變的參數
function average(...)
result = 0
local arg={...} --> arg 為一個表,局部變量
for i,v in ipairs(arg) do
result = result + v
end
print("總共傳入 " .. #arg .. " 個數")
return result/#arg
end
print("平均值為",average(10,5,3,4,5,6))
--總共傳入 6 個數
--平均值為 5.5
我們也可以通過 select("#",...) 來擷取可變參數的數量:
select("#",...)
有時候我們可能需要幾個固定參數加上可變參數,固定參數必須放在變長參數之前
function fwrite(fmt, ...) ---> 固定的參數fmt
return io.write(string.format(fmt, ...))
end
通常在周遊變長參數的時候隻需要使用 {…},然而變長參數可能會包含一些 nil,那麼就可以用 select 函數來通路變長參數了:select('#', …)或者 select(n, …)
1.select('#', …) 傳回可變參數的長度
2.select(n, …) 用于通路 n 到 select('#',…) 的參數
function foo(...)
for i = 1, select('#', ...) do -->擷取參數總數
local arg = select(i, ...); -->讀取參數
print("arg", arg);
end
end
foo(1, 2, 3, 4);