lua学习笔记 函数的变长参数与具名参数

听着这名词可能不大明白是啥意思,不过没关系,举个例子就明白了:

 

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先给等号右边的求值,然后才进行赋值操作。。。

你可能感兴趣的:(学习笔记)