[TOC]

多返回值

  1. function maximum (a)
  2. local mi = 1 -- 最大值索引
  3. local m = a[mi] -- 最大值
  4. for i,val in ipairs(a) do
  5. if val > m then
  6. mi = i
  7. m = val
  8. end
  9. end
  10. return m, mi
  11. end
  12. print(maximum({8,10,23,12,5}))

可变参数

Lua函数可以接受可变数目的参数,和C语言类似在函数参数列表中使用三点(…) 表示函数有可变的参数。

  • Lua将函数的参数放在一个叫arg的表中,#arg表示传入参数的个数。
  • 例如,我们计算几个数的平均值:
  1. function average(...)
  2. result = 0
  3. local arg={...}
  4. for i,v in ipairs(arg) do
  5. result = result + v
  6. end
  7. print("总共传入 " .. #arg .. " 个数")
  8. return result/#arg
  9. end
  10. print("平均值为",average(10,5,3,4,5,6))

以上代码执行结果为:

  1. 总共传入 6 个数
  2. 平均值为 5.5