题
我有作为散列映射,即,使用具有字符串键一个Lua表:
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
是表中的散列映射部取出的物品的接受的方式。你在做什么是标准配置。不过,我建议不重写table.remove()
- 为表的阵列部分,默认table.remove()功能包括重编索引,你的覆盖也不会做。如果你想你的函数添加到table
功能集,然后我可能会命名为像table.removekey()
或一些这样的。
不隶属于 StackOverflow