Lua之可變引數
阿新 • • 發佈:2018-11-19
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
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);