他のネットワーク参加者に関する情報に関するタプルを ETS テーブルに格納したいと考えています。{ip_address(), port_number()}
(return のタプルをinet:peername(Socket)
エントリのキーとして使用したいと思います。別名、ETS テーブル内の他のノード/エントリの識別子として、アドレス/ポートの組み合わせを使用したいと思います。
これはetsで可能ですか?または、他のタイプをキーとして使用する必要がありますか?
ETS は「Erlang Term Storage」の略で、タプルやタプルのタプルを含むあらゆる Erlang タームを格納できます。マニュアル ページの説明セクションでは、ets
特定のテーブル タイプで用語を比較および照合する方法について詳しく説明しています。また、ドキュメントでets:lookup/2
もこれについて説明しています。一部のテーブル タイプでは、Erlang 用語の順序が重要です。
格納されたタプルのどの部分がキーであるかについて混乱はありません。テーブルの作成に使用される関数には、キー要素を示すオプションが含まれていets:new/2
ます{keypos, Pos}
。が指定されていない場合{keypos, Pos}
、最初の要素がキーになります。