Variables Lua在表中插入多个变量

Variables Lua在表中插入多个变量,variables,insert,lua,lua-table,Variables,Insert,Lua,Lua Table,我的问题是如何(或是否)将两个值插入到lua表中 我得到了一个返回(可变数量的值)的函数 和另一个函数,它将点插入到表中 function b(x, y) table.insert(myTable, x, y) end 那么我如何才能使函数b具有可变数量的参数并将它们全部插入到我的表中呢?如果函数的最后一个参数是..(称为vararg函数),Lua解释器将把任何额外的参数放入..中。您可以使用{…}将其转换为表,并将键/值复制到名为myTable的全局表中。下面是您的函数的外观: 函数b

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

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

和另一个函数,它将点插入到表中

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

那么我如何才能使函数b具有可变数量的参数并将它们全部插入到我的表中呢?

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

函数b(…) 对于k,v成对({…})do myTable[k]=v 结束 结束 b(1,2)--{[1]=1,[2]=2}被添加到myTable中 您应该根据是否要将元素替换、合并或附加到
myTable

中来调整函数。该函数在vararg
上运行。

function b(...)
  for i = 1, select('#',...) do
    myTable[#myTable+1] = select(i,...)
  end
end
例如:


如当前所写,函数
b
在位置
x
插入值
y
。这是你的意图吗?如果要在表中插入多个值,必须多次调用
table.insert
。描述如何处理函数的可变参数数;这有帮助吗?作为一个轻微的注释,调用
b(1,2,nil,4)
生成表
{[1]=1,[2]=2,[3]=4}
。它可以是好的,也可以是坏的,这取决于需求。
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
>