Lua 函数

来源:互联网 发布:数据实时可视化 编辑:程序博客网 时间:2024/06/06 17:00

在Lua中,函数是对语句和表达式进行抽象的方法,即可以用来处理一些特殊的工作,也可以用来计算一些值,Lua提供了许多的内建函数,我们可以很方便的在程序中调用他们,如print()函数可以键传入参数打印在控制台上,,,、
Lua编程语言函数定义格式如下;

```optional function function_name( arg1, arg2, arg3..., argn)    function_body    return resultend
解析:
optional
该参数是可选的制定函数是全局函数还是局部函数,未设置该参数默认为全局函数,如果你需要设置函数为局部函数需要使用关键字local。
function_name:
指定函数名称。
arg, arg2, argt3…, argn:
函数参数,多个参数以逗号隔开,函数也可以不带参数。
function_body:
函数体,函数中需要执行的代码语句块。
result:
函数返回值,Lua语言函数可以返回多个值,每个值以逗号隔开。
小例:
比较连个数大小,并返回小的数:
--函数返回两个值的小的那个function max(num1, num2)   if (num1 < num2) then      result = num1;   else      result = num2;   end   return result;end-- 调用函数print("两值比较最小值为 ",max(10,4))print("两值比较最小值为 ",max(5,6))

多返回值:
Lua函数可以返回多个结果,比如我们查找数组数组中的最大值和最大值所在位置(索引)

function maximum(arr)local mi = 1     --最大值索引local m = a[mi]   --最大值for i,val in ipairs(arr) doif val > m thenmi = i;m = val;endendreturn  m,miendprint(maxnum({1,5,7,5,4,5,6,4}))

可变参数
lua函数可以接受可变数目的参数,和C语言类似在函数参数列表汇总使用三个点(…)表示函数有可变的参数,Lua将函数的参数放在一个叫arg的表中,#arg表示传入参数的个数,
小例:求几个数的平均值:

function average(...)result  = 0local arg = {...}for i,item in ipairs(arg) doresult = result +itemendreturn result/#arg   -- #arg 为传入参数个数endprint("平均值:",average(10,5,1,2,4));