キーを保存および取得するための単純なメモリ内永続レイヤーとして、また異なる値を持つ多くの重複キーを減らすことを含む時折のfoldlのために、エリクサー経由でetsを使用しています。バッグオプションを使用しています。
より複雑なテーブル トラバーサル、マッチ、またはフォールドを実行することなく、現在のキーだけのリストを取得する簡単な、おそらく O(1) 方法はありますか?
Erlang または Elixir 構文の応答を歓迎します。
:ets.new(:cache, [:bag, :named_table, :protected])
挿入を支援するために使用している整数でインデックス付けされたアトム キーの静的マップがあります。しかし、すべてのキーが使用されるわけではありません..
chunk_key_map = %{2 => :chunk_key_2, ..... 28 => :chunk_key_28}
簡単な方法がない場合は、ets:lookup を実行して静的アトム キー値をそれぞれ試し、!= [] をテストして独自のリストを生成できることは承知していますが、ets がそのような機能をサポートしているかどうかを確認したかったのです。
ありがとう