-
可变参数 可变参数用表接收进行下一步处理。
function F7(...) arg={...} for i=1,#arg do print(arg[i]) end end F7(1,"a","123",true)
-
多返回值接收
function F4() return "111",434,true end temp1,temp2,temp3=F4() print(temp1,temp2,temp3)
-
嵌套闭包
定义:通过调用含有一个内部函数加上该外部函数持有的外部局部变量(upvalue)的外部函数(就是工厂)产生的一个实例函数
组成:外部函数+外部函数创建的upvalue+内部函数(闭包函数)
实例:
function test() local i=0 return function()--尾调用 i=i+1 return i end end c1=test() c2=test() --c1,c2是建立在同一个函数,同一个局部变量的不同实例上面的两个不同的闭包 --闭包中的upvalue各自独立,调用一次test()就会产生一个新的闭包 print(c1()) -->1 print(c1()) -->2//重复调用时每一个调用都会记住上一次调用后的值,就是说i=1了已经 print(c1()) print(c2()) -->1//闭包不同所以upvalue不同 print(c2()) -->2
F7(1,"a","123",true) function F9(x) return function(y) return x+y end end f10=F9(10) print(f10(0))
lua 函数(可变参数、多返回值接收、嵌套闭包)
最新推荐文章于 2024-03-21 20:46:40 发布