📅  最后修改于: 2023-12-03 15:17:27.474000             🧑  作者: Mango
在 Lua 中,我们经常需要操作表(也就是 key-value 对的集合),有时候我们需要删除表的第一个元素,下面介绍几种方法。
table.remove 函数可以删除表中某个元素,也可以删除表的最后一个元素。如果我们想要删除表的第一个元素,可以将第二个参数设置为 1,如下所示:
local tbl = {1, 2, 3, 4}
table.remove(tbl, 1)
-- tbl = {2, 3, 4}
这样就可以删除表的第一个元素,注意这个操作会改变原表,最后 tbl 的值为 {2, 3, 4}。
table.concat 函数可以将表中的元素连成一个字符串,可以通过 string.sub 函数删除字符串中的某个子串,并返回删除后的字符串。如果我们将表的第二个元素到最后一个元素拼接成字符串,再删除掉第一个元素,就可以得到一个新的表:
local tbl = {1, 2, 3, 4}
tbl = {string.sub(table.concat(tbl, ",", 2), 2)}
-- tbl = {2, 3, 4}
这里用逗号作为分隔符拼接字符串,然后通过 string.sub 函数删除第一个逗号,再通过赋值将字符串转换成新表,得到了和第一种方法相同的结果。
我们也可以使用循环遍历表,将表的第二个元素到最后一个元素依次赋值给新表,得到一个新的表:
local tbl = {1, 2, 3, 4}
local newtbl = {}
for i = 2, #tbl do
newtbl[i - 1] = tbl[i]
end
tbl = newtbl
-- tbl = {2, 3, 4}
这里通过循环遍历表,将第二个元素到最后一个元素赋值给新表,最后将新表赋值给原表,得到了和前两种方法相同的结果。
以上就是几种删除 Lua 表的第一个元素的方法,选择不同的方法可以根据不同的需求,实现不同的功能。