可变数量参数表格

在 Lua 中,我正在使用别人的函数,它使用可变数量的参数。我想做的是通过循环构建参数列表。这个可能吗?

示例函数:

printResult = ""

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

我试过

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

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

点赞
用户6614127
用户6614127

你正在寻找 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 完成你试图做的事情。

function print(...)
    return table.concat({...}, "\t").."\n"
end
2019-10-05 22:12:09