🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **全局函数** ``` function max(num1,num2) if(num1>num2)then       result=num1; else       result=num2; end return result; end ``` ## **局部函数**(local声明局部函数) ``` local function demo() return true; end ``` 函数做为参数 ``` myprint=function(param) print("hello ",param,"!") --[函数可以返回多个值] return 1,2 end myprint("dash") --[输出 hello dash ! 12] ``` ## **可变参数** >[info] 使用三点...表示函数有可变数目的参数 ~~~ function add(...) local s = 0 for i, v in ipairs{...} do // {...} 表示一个由所有变长参数构成的数组 s = s + v end return s end print(add(3,4)) //7 print(add(3,4,5,6,7)) //25 ~~~ ### 笃定参数+变长参数 ``` function demo(fmt,...) ---> 固定的参数是fmt return io.write(string.format(fmt,...)) end demo("runoob\\n") //runoob demo("%d%d\\n",1,2) // 12 ``` ### 获取可变参数的数量:select("#",...) ``` function demo(...) print("参数的个数为:"..select("#",...)) end demo(1,2,3) //参数的个数为:3 ``` ### 获取指定可变参数:select(n,...) ``` do function foo(...) for i=1,select('#',...) do -->获取参数总数 local arg = select(i,...); -->读取参数 print("arg",arg); end end     foo(1,2,3,4); end ``` ### 获取**n**到**select('#',…)**的参数:select(n, …) ``` do functionfoo(...) for i = 1,select('#',...) do -->获取参数总数 local arg = select(i,...); -->读取参数 print("arg",arg); end end     foo(1,2,3,4); end ``` 输出结果为: ~~~ arg    1 arg    2 arg    3 arg    4 ~~~