Lua将多个变量插入表中

我的问题是如何(或者是否可以)在 Lua 表中插入两个值。

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

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

还有一个将这些点插入到表中的函数,

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

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

点赞
用户1721424
用户1721424

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

function b(...)
  for k, v in pairs({...}) do
    myTable[k] = v
  end
end

b(1, 2) -- {[1] = 1, [2] = 2}将被添加到myTable中

您应根据您想要替换、合并或附加到myTable中的元素调整该函数。

2012-11-04 01:04:14
用户33252
用户33252

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-04 01:14:53