对于可变数量的参数,以下是lua.org的示例:
function print (...)
for i,v in ipairs(arg) do
printResult = printResult .. tostring(v) .. "\t"
end
printResult = printResult .. "\n"
end
从上面的示例代码中,如果我打电话
print(“A”,“B”,nil,nil,“D”)
只有“A”&传入“B”,忽略自第一个零以来的所有参数。因此,在此示例中打印结果为“AB”。
是否可以获得包括nils在内的所有参数?例如,我可以检查参数是否为nil,如果是,我可以将“nil”打印为字符串。所以在这个例子中,我实际上想要打印
AB nil nil D
当然,在对代码进行一些修改之后。但我的问题是......最重要的是,即使其中一些是nils,如何得到所有的论点?
答案 0 :(得分:7)
你试过了吗?
function table.pack(...)
return { n = select("#", ...); ... }
end
function show(...)
local string = ""
local args = table.pack(...)
for i = 1, args.n do
string = string .. tostring(args[i]) .. "\t"
end
return string .. "\n"
end
现在您可以按如下方式使用它:
print(show("A", "B", nil, nil, "D"))
希望有所帮助。