如何通过它的键删除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()或类似的东西。

相关文章

1.github代码实践源代码是lua脚本语言,下载th之后运行thmai...
此文为搬运帖,原帖地址https://www.cnblogs.com/zwywilliam/...
Rime输入法通过定义lua文件,可以实现获取当前时间日期的功能...
localfunctiongenerate_action(params)localscale_action=cc...
2022年1月11日13:57:45 官方:https://opm.openresty.org/官...
在Lua中的table(表),就像c#中的HashMap(哈希表),key和...