如何通过它的键删除lua表条目?

前端之家收集整理的这篇文章主要介绍了如何通过它的键删除lua表条目?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个lua表,我用作hashmap,即与字符串键:
local map = { foo = 1,bar = 2 }

我想“弹出”由该键标识的此表的元素。有一个table.remove()方法,但它只需要删除元素的索引(即一个数字),而不是通用键。我想能够做table.remove(map,’foo’),这里是我如何实现它:

function table.removekey(table,key)
    local element = table[key]
    table[key] = nil
    return element
end

有更好的方法吗?

解决方法

不,将键的值设置为nil是删除表的hashmap部分中的项的接受方式。你所做的是标准的。但是,我建议不要覆盖table.remove() – 对于表的数组部分,默认的table.remove()功能包括重新编号索引,覆盖不会这样做。如果你想要添加你的函数到表函数集,那么我可能会命名为类似table.removekey()或类似的东西。

猜你在找的Lua相关文章