我的问题是你如何(或者)插入两个值到一个Lua表。
我有一个返回函数(值的变量个数)
function a(x, y)
return x, y
end
并且会插入点到一个表的另一功能,
function b(x, y)
table.insert(myTable, x, y)
end
那么怎样才能让,我可以调用函数B用的参数个数可变,并将它们全部插入我的表?
我的问题是你如何(或者)插入两个值到一个Lua表。
我有一个返回函数(值的变量个数)
function a(x, y)
return x, y
end
并且会插入点到一个表的另一功能,
function b(x, y)
table.insert(myTable, x, y)
end
那么怎样才能让,我可以调用函数B用的参数个数可变,并将它们全部插入我的表?
如果您函数的最后一个参数...
(称为可变参数函数),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
。
在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
>