1. ホーム
  2. lua

[解決済み] Luaでテーブルが要素を含んでいるかどうかを確認するには?

2022-02-28 12:40:09

質問

テーブルに値が含まれているかどうかをチェックする方法はありますか?私は自分自身の(素朴な)関数を持っていますが、私はそのための何か"公式"が存在するかどうか疑問に思っていました?または、より効率的な何か...

function table.contains(table, element)
  for _, value in pairs(table) do
    if value == element then
      return true
    end
  end
  return false
end

ところで、この関数を使う主な理由は、テーブルを集合として、つまり重複する要素がない状態で使いたいからです。他に何か使えるものはないでしょうか?

どのように解決するのですか?

値をテーブルのキーとして置くことができます。たとえば

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

より機能の充実した例もあります。 こちら .