Lua向表中插入多个变量

问题描述 投票:0回答:3

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

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

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

还有另一个将其插入到表中的函数,

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

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

variables insert lua lua-table
3个回答
1
投票

如果函数的最后一个参数是

...
(称为可变参数函数),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
投票

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
> 

0
投票
function table.insert (list, ...)
    for i, v in ipairs({...}) do
    list[#list+1] = v
  end
end

local list = {}
table.insert (list, 'a', 'b')
print (table.concat (list, ',')) -- a, b
table.insert (list, 'c', 'd')
print (table.concat (list, ',')) -- a,b,c,d
© www.soinside.com 2019 - 2024. All rights reserved.