多返回值
function maximum (a)local mi = 1 -- 最大值索引local m = a[mi] -- 最大值for i,val in ipairs(a) doif val > m thenmi = im = valendendreturn m, miendprint(maximum({8,10,23,12,5}))
可变参数
Lua函数可以接受可变数目的参数,和C语言类似在函数参数列表中使用三点(…) 表示函数有可变的参数。
- Lua将函数的参数放在一个叫arg的表中,#arg表示传入参数的个数。
- 例如,我们计算几个数的平均值:
function average(...)result = 0local arg={...}for i,v in ipairs(arg) doresult = result + vendprint("总共传入 " .. #arg .. " 个数")return result/#argendprint("平均值为",average(10,5,3,4,5,6))
以上代码执行结果为:
总共传入 6 个数平均值为 5.5
