最接近Elixir中的数组

时间:2017-09-23 23:31:55

标签: arrays tuples elixir

Elixir中与Arrays最接近的是什么。我指的是数组,我可以在恒定时间内访问值的容器。

我看过元组,但根据documentation

  

元组并不打算用作“集合”类型(这也是由于缺少元组的Enumerable协议的实现而建议):它们主要用作固定大小的容器。多元素。

我真正想做的事情: 我想将 n 进程存储在数组中,并定期选择一个随机进程并向其发送消息。 我也对其他建议持开放态度。

4 个答案:

答案 0 :(得分:3)

由于我正在使用流程,因此我最终使用了listregistry的组合。我在Elixir forum收到了很多回复,我将在下面列出以供将来参考:

  1. Tuple:连续存储在内存中,持续访问时间,编辑结果复制整个结构。 是否实施了Enumerable协议。
  2. 已链接 - List:O(n)访问时间,前缀比后缀便宜。实现可枚举协议。
  3. Map:O(log n)读,写,删除时间。还实现了Enumerable协议。
  4. 来自Erlang的
  5. :arrayarray模块。
  6. registry :(仅适用于存储流程)本地,分散且可扩展的键值流程存储。
  7. 另外,注2和3(列表和地图)are persistent data structures

答案 1 :(得分:1)

还有两个Elixir软件包Arrays  和Tensor提供相似的功能。

答案 2 :(得分:0)

Elixir通过erlang有一个数组模块:http://erlang.org/doc/man/array.html

答案 3 :(得分:0)

与Solidity语言中的mapping类似,Elixir具有map()