听着这名词可能不大明白是啥意思,不过没关系,举个例子就明白了:
1 function test(...) 2 for i,v in ipairs(arg)do 3 print(i,v) 4 end 5 6 print(unpack(arg)) --unpack 返回表中内容 7 end 8 9 test(1,23,4,5,6,6,7,8)
1 --变长参数 2 function Params(...) 3 print(arg[1],arg.n) 4 end 5 6 Params(1,23,4) --输出 1 3 7 8 9 --具名参数 10 function Test(arg) 11 print(arg.old,arg.new) 12 arg.old,arg.new = arg.new,arg.old 13 print(arg.old,arg.new) 14 end 15 16 Test{old = 1,new = 2} --输出 1,2 2,1
解释一下, arg.old,arg.new = arg.new,arg.old 这个用于给2个变量互换值。因为lua先给等号右边的求值,然后才进行赋值操作。。。