对于可变数量的参数,这里是lua.org的一个例子:
function print (...)
for i,v in ipairs(arg) do
printResult = printResult .. tostring(v) .. "\t"
end
printResult = printResult .. "\n"
end
Run Code Online (Sandbox Code Playgroud)
从上面的示例代码中,如果我打电话
打印("A","B",零,零,"D")
只传入"A"和"B",忽略自第一个零以来的所有参数.因此在这个例子中打印结果是"AB".
是否有可能获得包括nils在内的所有论据?例如,我可以检查参数是否为nil,如果是,我可以将"nil"打印为字符串.所以在这个例子中,我实际上想要打印
AB nil nil D
Run Code Online (Sandbox Code Playgroud)
当然,在对代码进行一些修改之后.但我的问题是......最重要的是,即使其中一些是nils,如何得到所有的论点?
你有没有尝试过:
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
Run Code Online (Sandbox Code Playgroud)
现在您可以按如下方式使用它:
print(show("A", "B", nil, nil, "D"))
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.