lua检测表中是否有某个值,如何检查表是否包含Lua中的元素?

Is there a method for checking if a table contains a value ? I have my own (naive) function, but I was wondering if something "official" exists for that ? Or something more efficient...

function table.contains(table, element)

for _, value in pairs(table) do

if value == element then

return true

end

end

return false

end

By the way, the main reason I'm using this functions is to use tables as sets, ie with no duplicate elements. Is there something else I could use ?

解决方案

You can put the values as the table's keys. For example:

function addToSet(set, key)

set[key] = true

end

function removeFromSet(set, key)

set[key] = nil

end

function setContains(set, key)

return set[key] ~= nil

end

There's a more fully-featured example here.


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部