我想存储关于ETS表中其他网络参与者的信息的元组。
我想使用{ip_address(), port_number()}
的元组(返回inet:peername(Socket)
作为条目的关键.Aka我想使用地址/端口的组合作为其他节点/条目的标识符ETS表。
这可能与ets有关吗?或者我是否必须使用其他类型作为密钥?
答案 0 :(得分:4)
ETS代表“Erlang Term Storage”,它可以存储任何Erlang术语,包括元组的元组和元组。 the ets
man page的说明部分详细说明了如何比较和匹配特定表类型的术语,ets:lookup/2
的文档也讨论了这一点。对于某些表类型,Erlang term order很重要。
关于存储元组的哪一部分是关键,没有混淆;用于创建表的ets:new/2
function包含{keypos, Pos}
选项以指示关键元素。如果未提供{keypos, Pos}
,则第一个元素是密钥。