例如:
items = {
[753] = {
},
[192] = {
},
[789] = {
},
[791] = {
},
[790] = {
},
[776] = {
},
}
Run Code Online (Sandbox Code Playgroud)
我想删除789及其中的所有数据.我试过了两个:table.remove(items,2); 和table.remove(items,789); (我不确定索引是如何工作的)没有运气.
这很简单
items[789] = nil
Run Code Online (Sandbox Code Playgroud)
在Lua中,如果表中的键具有nil值,那么就好像键不存在一样.
> t = { [5] = {}, [10] = {} }
> for k,v in pairs(t) do print(k,v) end
5 table: 0037CBC0
10 table: 0037CBE8
> t[5] = nil
> for k,v in pairs(t) do print(k,v) end
10 table: 0037CBE8
Run Code Online (Sandbox Code Playgroud)
另见Lua的Progamming,第2.5节.(即使在线版本是为Lua 5.0编写的,这仍然适用于Lua 5.1)
...您可以将nil分配给表字段以将其删除.
分配nil给索引时,不会显式删除先前存储在索引中的内容; 但它确实降低了存储在那里的引用计数,可能使其符合垃圾收集的条件.
| 归档时间: |
|
| 查看次数: |
2129 次 |
| 最近记录: |