Lua 中清空表的方法

想要清空表,但是不确定哪种方法是最好的,以及它们之间的区别是什么。下面是这些方法的区别:

tbl = {}
for k, v in pairs(tbl) do v = nil end
for k, v in pairs(tbl) do tbl[k] = nil end

谢谢。

点赞
用户4984564
用户4984564
tbl = {}

这不是清空表格,而是创建一个新的空表。旧的表格可能会被垃圾回收,这取决于是否有其他引用它的地方。

for k, v in pairs(tbl) do v = nil end

这完全没有任何作用,浪费了处理能力。

for k, v in pairs(tbl) do tbl[k] = nil end

这实际上是清空表格而不需要创建一个新的空表。对于小表而言,这通常比创建新表格更高效,因为这对于GC来说是更少的工作,但这是比较高级的优化技巧,并不是清空表格总是更好。

请注意,pairs使用next函数,该函数可以在迭代时处理删除键的情况。

2020-02-11 10:33:34