1

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

我有一个返回的函数(可变数量的值)

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

以及另一个将指向表插入的函数,

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

那么我怎样才能使我可以使用可变数量的参数调用函数 b 并将它们全部插入我的表中?

4

2 回答 2

1

select函数对可变参数进行操作...

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
> 
于 2012-11-04T01:14:53.893 回答
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.

于 2012-11-04T01:04:14.397 回答