テーブルに値が含まれているかどうかを確認する方法はありますか? 独自の (単純な) 関数がありますが、そのための「公式」なものがあるかどうか疑問に思っています。または、もっと効率的なものがあるでしょうか...
function table.contains(table, element)
for _, value in pairs(table) do
if value == element then
return true
end
end
return false
end
ちなみに、私がこの関数を使用する主な理由は、テーブルをセットとして使用すること、つまり重複する要素を使用しないことです。他に使用できるものはありますか?
ベストアンサー1
値をテーブルのキーとして置くことができます。例:
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
より充実した機能を備えた例がありますここ。