元组作为ets表的关键?

时间:2016-07-19 09:26:03

标签: erlang ets

我想存储关于ETS表中其他网络参与者的信息的元组。 我想使用{ip_address(), port_number()}的元组(返回inet:peername(Socket)作为条目的关键.Aka我想使用地址/端口的组合作为其他节点/条目的标识符ETS表。

这可能与ets有关吗?或者我是否必须使用其他类型作为密钥?

1 个答案:

答案 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},则第一个元素是密钥。