Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Erlang 元组作为ets表的键?_Erlang_Ets - Fatal编程技术网

Erlang 元组作为ets表的键?

Erlang 元组作为ets表的键?,erlang,ets,Erlang,Ets,我想在ETS表中存储有关其他网络参与者信息的元组。 我想使用inet:peernameSocket返回的{ip_address,port_number}元组作为条目的键。我想使用地址/端口的组合作为ETS表中其他节点/条目的标识符 这在ets中是可能的吗?或者我必须使用其他类型作为键吗?ETS代表Erlang术语存储,它可以存储任何Erlang术语,包括元组和元组的元组。“描述”部分详细介绍了如何比较和匹配特定表类型的术语,其文档也对此进行了讨论。对于某些表类型,这一点很重要 对于存储的元组的哪

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


这在ets中是可能的吗?或者我必须使用其他类型作为键吗?

ETS代表Erlang术语存储,它可以存储任何Erlang术语,包括元组和元组的元组。“描述”部分详细介绍了如何比较和匹配特定表类型的术语,其文档也对此进行了讨论。对于某些表类型,这一点很重要


对于存储的元组的哪个部分是键,没有任何混淆;用于创建表的包含{keypos,Pos}选项以指示键元素。如果未提供{keypos,Pos},则第一个元素是键。

您的意思是像ets:insertTable,{{127.0.0.14000},value}。?这看起来很好,更像ets:insertTable,{{{0,0,0,0,0,0,1},4000},value}。。它似乎对我也很管用。然而,我最近遇到了一些奇怪的错误,无法找到是否可以使用元组的信息。我可以想象,erlang可能会混淆它应该将哪些嵌套元组视为键。这也应该是好的。可能添加一些相关代码和您得到的确切错误。ETS代表Erlang术语存储,它可以存储任何Erlang术语,包括元组…-来自:数据组织为一组动态表,可以存储元组。-和from:所有ETS表本机存储包含您想要的任何内容的Erlang元组,其中一个元组元素将充当主键…-听起来ETS可以存储的唯一数据类型是元组中包含任何其他数据类型的元组。这是真的吗?关于表存储,是的,都是元组。但是元组对表用户的意义不同。在一种情况下,存储的元组是对用户有意义的整个值;e、 例如,如果元组实际上是一个记录,那么整个记录就是用户感兴趣的值,一个字段就是键。另一种情况涉及不同的键和值,但它们显式配对到一个元组中,因为这是ets所需要的。这种情况下包含的值是它们自己的键,显式地放在元组中,只是为了满足ets,例如{42}或{foo}。