国际访客建议访问 Primers 编程伙伴 国际版站点 > Lua 教程 > table-module 以获得更好的体验。

# Lua 的 Table 模块

请查看 Lua 标准库模块列表 了解更多相关 API。
函数 说明
table.concat 将表中的元素进行拼接
table.insert 向表中插入元素
table.move 将表中的元素移动到另一个表
table.pack 将一组数据打包成一个表
table.remove 从表中删除一个数据
table.sort 排序
table.unpack 将表中的元素解包

# table.concat

table.concat (list [, sep [, i [, j]]])

!subtitle:说明

将表中的元素进行拼接,返回字符串 list[i]..sep..list[i+1] ··· sep..list[j]

!subtitle:参数

  • list - 要进行拼接的表,元素的值必须全是数值

  • sep - 拼接时相邻元素之间插入的字符串,默认值是空串

  • i - 拼接元素的起始索引;默认值是 1,即表的第一个元素

  • j - 拼接元素的终止索引;默认值是 #list,即表的最后一个元素

!subtitle:示例

运行示例

local array = {"never", "gonna", "give", "you", "up"}
print(table.concat(array))                  -- 直接拼接
print(table.concat(array, " "))             -- 元素之间插入空格
print(table.concat(array, " ", 3, 4))       -- 选取部分元素

# table.insert

table.insert (list, [pos,] value)

!subtitle:说明

在表中索引为 pos 的位置插入值为 value 的元素。

!subtitle:参数

  • list - 要进行插入的表

  • pos - 要插入的位置索引;默认为 #list+1,即在表的末尾追加元素

  • value - 要插入的值

!subtitle:示例

运行示例

local array = {1, 2, 3, 4, 5}       -- 定义数组
print(table.concat(array, ","))     -- 查看数组

table.insert(array, 6)              -- 在末尾追加元素
print(table.concat(array, ","))     -- 查看数组

table.insert(array, 3, 10)          -- 在索引 3 插入元素
print(table.concat(array, ","))     -- 查看数组

# table.move

table.move (a1, f, e, t [,a2])

!subtitle:说明

将表 a1 中的元素移动到表 a2 中,相当于 a2[t],··· = a1[f],···,a1[e]

!subtitle:参数

  • a1 - 源表

  • f - 要移动的第一个元素的索引

  • e - 要移动的最后一个元素的索引

  • t - 接收第一个元素的索引

  • a2 - 目标表;默认为 a1,即在 a1 表内进行移动

!subtitle:示例

运行示例

local src = {1, 2, 3, 4, 5}         -- 定义源数组
local dst = {10, 20, 30, 40, 50}    -- 定义目标数组

table.move(src, 2, 4, 2, dst)       -- 将 src 数组的 2 至 4 元素移动到 dst 数组的索引 2 位置
print(table.concat(dst, ","))       -- 查看数组

table.move(src, 2, 4, 3)            -- 将 src 的 2 至 4 元素移动到自身的索引 3 位置
print(table.concat(src, ","))       -- 查看数组

# table.pack

table.pack (···)

!subtitle:说明

将参数打包成一个表,并将表的 n 字段设为参数的数量。

!subtitle:示例

运行示例

local result = table.pack('a', 'b', 'c', 'd', 'e')
print(result.n)                     -- 查看表的字段 n
print(table.concat(result, ","))    -- 查看数组

# table.remove

table.remove (list [, pos])

!subtitle:说明

从表 list 中删除索引为 pos 的元素,之后的元素向前移动。

!subtitle:参数

  • list - 要进行删除的表

  • pos - 要插入的位置索引;默认为 #list,即删除最后一个元素

!subtitle:示例

运行示例

local array = {1, 2, 3, 4, 5}       -- 定义数组
table.remove(array)                 -- 删除最后一个元素
print(table.concat(result, ","))    -- 查看数组
table.remove(array, 2)              -- 删除索引为 2 的元素
print(table.concat(result, ","))    -- 查看数组

# table.sort

table.sort (list [, comp])

!subtitle:说明

将表 list 进行排序,会修改 list

!subtitle:参数

  • list - 要进行排序的表

  • comp - 用于元素比较的函数,必须接收两个参数,第一个参数排在第二个参数之前时返回 true,反之返回 false;默认为升序排序

!subtitle:示例

运行示例

local array = {3, 7, 2, 4, 6, 1, 5}     -- 定义数组
table.sort(array)                       -- 默认(升序)排序
print(table.concat(array, ","))         -- 查看数组

function gt(x, y)
    if x > y then
        return true
    else
        return false
    end
end

table.sort(array, gt)                   -- 降序排序
print(table.concat(array, ","))         -- 查看数组

# table.unpack

table.unpack (list [, i [, j]])

!subtitle:说明

将表 list 的元素进行解包,相当于 return list[i], list[i+1], ···, list[j]

!subtitle:参数

  • list - 要解包的表

  • i - 要解包的第一个元素;默认为 1,即第一个元素

  • j - 要解包的最后一个元素;默认为 #list,即最后一个元素

!subtitle:示例

运行示例

local array = {1, 2, 3, 4, 5}               -- 定义数组
local x,y,z = table.unpack(array, 2, 4)     -- 解包 2 至 4 元素
print(x, y, z)

# 推荐阅读

Table Manipulation - Lua 5.4 Reference Manual

本文 更新于: 2025-11-27 09:38:13 创建于: 2025-11-27 09:38:13