Woo*_*kai 90 lua contains unique set lua-table
有没有检查表是否包含值的方法?我有自己的(幼稚)功能,但我想知道是否存在"正式"的东西?或者更高效的东西......
function table.contains(table, element)
for _, value in pairs(table) do
if value == element then
return true
end
end
return false
end
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我使用这个函数的主要原因是使用表作为集合,即没有重复的元素.还有其他我可以使用的东西吗?
int*_*jay 114
您可以将值作为表的键.例如:
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
Run Code Online (Sandbox Code Playgroud)
还有一个功能更全面例如这里.
Nor*_*sey 24
鉴于您的表示,您的功能与可以完成的效率一样高效. 当然,正如其他人所指出的那样(并且在比Lua更早的语言中实践),解决您真正的问题的方法是改变表示.如果有表并且需要集,则可以使用set元素作为键和true值来将表转换为集合.+1对话.