主要掌握:
1>虚变量 --- 一个下划线
2>lua将函数的可变参数放在一个叫 arg 的表中,除了参数以外,arg表中还有一个域n表示参数的个数。
1 do 2 function fun(x, y, ...) 3 end 4 5 fun(1) --- x = 1, y = nil, arg = {n = 0} 6 fun(1,2) --- x = 1, y = 2 , arg = {n = 0} 7 fun(1,2,3,4) --- x = 1, y = 2 , arg = {3, 4; n = 2} 8 end
如果一个函数是多值返回,我们不需要其全部的返回值,只需要其中的部分值,该如何做?
处理方式有一下三种:
1、定义对应数量的变量,一一接收,然后按需所取
2、用虚变量接收无用的返回值,定义新变量来接收所需要的值
3、利用函数的可变参数,定义一个方法,根据索引取需要的返回值
以下是示例代码:
1 do 2 tab = {1, 2} 3 4 fun = unpack; --返回tab中的所有元素 5 6 --现在我们只需要 fun 的第二个返回值 7 --做法有三 8 9 --1、定义对应数量的变量 10 a, b = fun(tab); 11 print(b) 12 13 --2、用虚变量 14 _, x = fun(tab); 15 print(x) 16 17 --3、利用函数的可变参数,定义一个方法 18 function select(n, ...) 19 return arg[n] 20 end 21 print(select(2, fun(tab))) 22 end