当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何通过键删除lua表条目?》经验,为你挑选了1个好方法。

我有一个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

有没有更好的方法呢?



1> Amber..:

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

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有