Variables Lua在表中插入多个变量
我的问题是如何(或是否)将两个值插入到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
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
>