Lua 接口说明书 · 996引擎LUA API REFERENCE · 5.1/5.3

表库

TABLE

表操作:插入删除、排序、拼接,Lua 唯一的容器 | 本页 5 个接口。登录全站学员账号后:给函数打 ✓ 记录学习进度、写私人备注。

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

把数组 [i, j] 的元素用分隔符 sep 连接成一个字符串(比 .. 循环拼接快得多)。

📥 参数
参数说明
list字符串/数字数组
sep分隔符,默认空
i起始,默认 1
j结束,默认 #list
📤 返回值

拼接后的字符串

💻 用法案例
local t = {'a', 'b', 'c'}
print(table.concat(t, '-'))      --> a-b-c
print(table.concat({1,2,3}, ',', 2))  --> 2,3
table.insert (list, [pos,] value)
📖 用途

在数组 list 的 pos 位置插入 value(pos 省略时插入到末尾,#list+1),后面的元素顺移。

📥 参数
参数说明
list数组表
pos插入位置(1~#list+1)
value要插入的值
📤 返回值

💻 用法案例
local t = {'a', 'c'}
table.insert(t, 'd')       --> a c d
table.insert(t, 1, 'b0')   --> b0 a c d
table.maxn (table)
📖 用途

返回表中最大的正数键(5.1 提供,5.3 已移除)。对稀疏数组求“长度”用它比 # 稳。

📥 参数
参数说明
table目标表
📤 返回值

最大正数键;没有返回 0

💻 用法案例
local t = {}
t[5] = 'a'
print(table.maxn(t))   --> 5
print(#t)              --> 0 (# 对稀疏表不可靠)
table.remove (list [, pos])
📖 用途

删除并返回数组 list 中 pos 位置的元素(pos 省略删最后一个),后面的元素前移。循环删除时记得倒序遍历。

📥 参数
参数说明
list数组表
pos位置,默认 #list
📤 返回值

被删除的元素

💻 用法案例
local t = {'a', 'b', 'c'}
print(table.remove(t, 2))   --> b
print(table.remove(t))      --> c

-- 倒序删除避免错位
for i = #t, 1, -1 do if t[i] == 'x' then table.remove(t, i) end end
table.sort (list [, comp])
📖 用途

原地对数组升序排序(默认按 < 比较)。可传比较函数 comp(a,b) 返回 true 表示 a 排前面。不稳定排序(相等元素次序不保证)。

📥 参数
参数说明
list数组表
comp比较函数,可选
📤 返回值

无(原地排序)

💻 用法案例
local t = {3, 1, 2}
table.sort(t)                          --> 1 2 3
table.sort(t, function(a, b) return a > b end)   --> 3 2 1

local ps = {{n='甲',lv=30},{n='乙',lv=50}}
table.sort(ps, function(a,b) return a.lv > b.lv end)   -- 按等级降序
Lua 接口说明书 · 996引擎教学资料 · chuan2.cn · 共 136 个接口
📝 我的备注-
👤 学员中心 · 备注与学习进度