1.unpack
function nonils(…)
local arg =table.pack(…)
for i=1,arg.n do
if(arg[i]==nil) then
return false
end
return true
end
table.pack(…)是自动将函数的可变参转换为一个表,但是这个表保存了参数个数的额外字段"n"
2.unpack
还有table.unpack()是自动将一个数组返回数组内的所有元素
print(table.unpack{10,20,30}) 得到的值为 10,20,30
也可以使用长度操作符来获取返回值的个数
print(table.unpack({10,20,30},1,2)) 返回的值为10,20
下面有一个例子来讲述unpack的作用
f=string.find
a={“hello”,“ll”}
print(f(table.unpack(a)))
3.select
function add(…)
local s=0
for i=1,select("#",…) do
s=s+select(i,…)
end
return s
end
select("#",…)
select(n,…) 是自动返回地n个参数后的所有参数
例如select(1,“a”,“b”,“c”) 返回的就是a b c
同理select(2,“a”,“b”,“c”) 返回的就是b c
假如select(#,“a”,“b”,“c”) 返回的是参数的总数