微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/lua/275189.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐