可变参数表

问题描述 投票:1回答:1

在lua中,我正在使用其他函数,该函数接受可变数量的参数。我想做的是通过循环建立参数列表。这可能吗?

示例功能:

printResult = ""

function print (...)
  for i,v in ipairs(arg) do
    printResult = printResult .. tostring(v) .. "\t"
  end
  printResult = printResult .. "\n"
end

我尝试过

print({"test","test2"})

但是这只是将一个参数(表)传递给函数

lua arguments
1个回答
0
投票

您正在寻找table.unpack功能。您可以为要在表中调用的vararg函数构建参数。在表上调用table.unpack将表扩展为参数列表。像这样,

table.unpack

此外,您还需要在发布的args = {} for i = 1, 4 do args[#args+1] = i * i * math.pi end print(table.unpack(args)) 函数中将所有这些参数收集到您正在使用的print列表中...

arg

最后,已经有一种方法可以使用function print (...) printResult = "" arg = {...} for i,v in ipairs(arg) do printResult = printResult .. tostring(v) .. "\t" end printResult = printResult .. "\n" return printResult end 完成您想做的事情。

table.concat
© www.soinside.com 2019 - 2024. All rights reserved.