元组作为 ets 表的键?

tnu*_*ull 3 erlang ets

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

这对于 ets 来说可能吗?或者我必须使用其他类型作为密钥?

Ste*_*ski 5

ETS 代表“Erlang Term Storage”,它可以存储任何 Erlang 术语,包括元组和元组的元组。手册ets的描述部分详细介绍了如何针对特定表类型比较和匹配术语,并且文档也ets:lookup/2对此进行了讨论。对于某些表类型,Erlang 术语顺序很重要。

存储元组的哪一部分是键不会产生混淆;用于创建表的函数包含指示关键元素的选项ets:new/2{keypos, Pos}如果{keypos, Pos}未提供,则第一个元素是键。