我试图编写一个带有可变数量参数的函数,这些参数对所有数字条目都有效。所以我想出了类似的东西:
function luaFunc (...)
for i,v in ipairs{...} do
if type(v)=='number' then
--do something
end
end
end
但是当我运行它时,它会在第一个非数字参数上停止。这个问题是什么?
答案 0 :(得分:1)
local function luaFunc (...)
for i = 1, select('#',...) do
local v = select(i,...)
if type(v)=='number' then
--do something
print(v)
end
end
end
luaFunc (1,'a',nil,2) ]
-- Output
1
2
答案 1 :(得分:1)
试试这个:
function luaFunc (...)
local t=table.pack(...)
for i=1,t.n do
local v=t[i]
if type(v)=='number' then
print(i,v)
end
end
end
luaFunc(10,20,"hello",40,nil,60,print,99)