Lua将多个变量插入表中

时间:2012-11-04 00:31:12

标签: variables insert lua lua-table

我的问题是如何(或者如果)你可以将两个值插入到lua表中。

我得到了一个返回(可变数量的值)的函数

function a(x, y)
   return x, y
end

和另一个将该点插入表中的函数,

function b(x, y)
   table.insert(myTable, x, y)
end

那我怎么做,我可以用可变数量的参数调用函数b并将它们全部插入到我的表中?

2 个答案:

答案 0 :(得分:1)

如果函数的最后一个参数是...(称为vararg函数),Lua解释器会将任何额外的参数放入...。您可以使用{...}将其转换为表,并将键/值复制到名为myTable的全局表中。这是你的功能的样子:

function b(...)
  for k, v in pairs({...}) do
    myTable[k] = v
  end
end

b(1, 2) -- {[1] = 1, [2] = 2} is added to myTable

您应根据是否要将元素替换,合并或附加到myTable来调整函数。

答案 1 :(得分:1)

select函数在vararg ...

上运行
function b(...)
  for i = 1, select('#',...) do
    myTable[#myTable+1] = select(i,...)
  end
end

如,

> myTable = {'a','b'}
> b('c','d')
> for i = 1, #myTable do print(myTable[i]) end
a
b
c
d
>