Lua でテーブルに要素が含まれているかどうかを確認するにはどうすればよいでしょうか? 質問する

Lua でテーブルに要素が含まれているかどうかを確認するにはどうすればよいでしょうか? 質問する

テーブルに値が含まれているかどうかを確認する方法はありますか? 独自の (単純な) 関数がありますが、そのための「公式」なものがあるかどうか疑問に思っています。または、もっと効率的なものがあるでしょうか...

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

より充実した機能を備えた例がありますここ

おすすめ記事