Lua 怎么合并 table?

文章导读
Previous Quiz Next 在 Lua 中,我们可以使用一个简单的函数将两个 table 连接起来,但需要注意的是,Lua 标准库中并不存在这样的函数。
📋 目录
  1. A 第一种方法 - 使用 for 循环
  2. B 第二种方法 - 使用 ipairs()
  3. C 示例 - 使用 pairs 迭代器
  4. D 示例 - 使用 ipairs 迭代器
A A

Lua - 合并表



Previous
Quiz
Next

在 Lua 中,我们可以使用一个简单的函数将两个 table 连接起来,但需要注意的是,Lua 标准库中并不存在这样的函数。

在 Lua 中连接两个 table 有不同的方法。我编写了两种方法,它们的复杂程度大致相同。

第一种方法 - 使用 for 循环

第一种方法大致如下 −

-- 创建一个用于连接 table 的函数
function TableConcat(t1,t2)
   for i=1,#t2 do
      t1[#t1+1] = t2[i]
   end
   return t1
end

第二种方法 - 使用 ipairs()

另一种实现相同功能的方法是使用 ipairs() 函数。

-- 使用 ipairs
for _,v in ipairs(t2) do
   table.insert(t1, v)
end

我们可以使用这两种方法中的任意一种。现在让我们在 Lua 示例中使用第一种方法。

示例 - 使用 pairs 迭代器

考虑下面的示例 −

main.lua

-- 初始化第一个数组
t1 = {1,2}
-- 初始化第二个数组
t2 = {3,4}

-- 定义一个用于连接 table 的函数
function TableConcat(t1,t2)
   for i=1,#t2 do
      t1[#t1+1] = t2[i]
   end
   return t1
end

-- 连接 table
t = TableConcat(t1,t2)

-- 遍历 table
for _, v in pairs(t1) 
do 
   print(v) 
end

输出

运行上述代码时,我们将得到以下输出−

1
2
3
4

现在让我们在 Lua 示例中使用第二种方法。

示例 - 使用 ipairs 迭代器

考虑下面的示例 −

main.lua

-- 初始化第一个数组
t1 = {1,2}
-- 初始化第二个数组
t2 = {3,4}

-- 遍历 t2
for _,v in ipairs(t2) 
do
   table.insert(t1, v)
end

-- 遍历 t1 并打印合并后的 table
for _, v in pairs(t1) 
do 
   print(v) 
end

输出

运行上述代码时,我们将得到以下输出−

1
2
3
4