首页 > 代码库 > Lua Table元素的删除
Lua Table元素的删除
Lua 中的Table元素删除主要有两种方法:
1、将字段赋值为 nil
2、使用Table库里的 table.remove(table, index)
下面着重讲解两种方法
1 table.remove
先来看一下这个库函数的函数原型:
table.remove(table, pos)
@table:要删除的表
@pos: 要删除表元素的位置,这个参数可选,如果不传的话, 默认为table的长度,即从表最后一个元素删起
local t = {10, 20, 30, 40,50, 60}
table.remove(t, 3)
for k,v in pairs (t) do
print("t", k, v)
end
结果:
可以看到,第3个元素30已经找不到了!
除此之外,还可以看到, 后面的40,50,60分别往前移了一位
由此,千万记得不要在循环中多次使用table.remove(),如果一定要用,谨慎测试!
2 赋值为 nil
以下面这段代码为实验环境
local t =
{
[10] = 1,
[20] = 2,
[30] = 3,
[40] = 4,
[50] = 5,
[60] = 6
}
如果用table.remove()的话,pos的位置根本不好找,因为Lua内部非数组排序是根据hash值来的
对于这种pos不好找的表结构,可能赋值为nil相当方便,
假设我要删除t[30],
只需要
t[30] = nil
for k,v in pairs (t) do
print("t", k, v)
end
结果为
可以看到, 已经找不到 t[30],3了
当然,赋值为nil不仅仅只能用来删除Table的元素,它可以用来删除任何变量!
来自为知笔记(Wiz)
Lua Table元素的删除
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。