Lua table.insert 用法

Alexer 发布于 阅读:12 速查

table.insert 往表里插一个值,表长度自动加一。两种写法:只给值就追加到末尾,给位置就插到指定下标,原位置及后面的元素整体后挪。

local t = {"a", "b"}
table.insert(t, "c")        -- 追加到末尾,t = {"a", "b", "c"}
table.insert(t, 2, "x")     -- 插到第 2 位,t = {"a", "x", "b", "c"}
print(#t)                   -- 4

位置参数范围是 1 到 #t+1,超出会直接报 position out of bounds。想在末尾追加就只传两个参数,别写成 table.insert(t, #t+1, v),效果一样但没必要。

循环里收集数据最常用:

local ids = {}
for _, row in ipairs(rows) do
  table.insert(ids, row.id)  -- 一条条塞进去,顺序和遍历一致
end

它只管连续下标的数组。稀疏表或者拿来当字典用的表,不要用 table.insert 定位插入,直接 t[key] = value 赋值就行。

语法基础 Lua 函数用法