Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/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
Elixir映射集vs Enum.member?_Elixir - Fatal编程技术网

Elixir映射集vs Enum.member?

Elixir映射集vs Enum.member?,elixir,Elixir,我只需要保留唯一的值,我不知道应该使用哪种数据结构。稍后我将只阅读整个数据结构 一种方法是使用只包含唯一元素的MapSet 第二种方法是每次使用Enum.member?检查项目是否已经存在,但我可以通过MapSet轻松保证这一点 我不确定在这种情况下使用哪种方法更好。哪个更有效,哪个更实用?如果您将数据保存在地图集中,那么Enum.member?实际上会在下面调用MapSet.member?,因此您将拥有MapSet的所有优点。您可以看到相关的协议实现。我认为您混淆了数据结构和。MapSet

我只需要保留唯一的值,我不知道应该使用哪种数据结构。稍后我将只阅读整个数据结构

  • 一种方法是使用只包含唯一元素的
    MapSet
  • 第二种方法是每次使用
    Enum.member?
    检查项目是否已经存在,但我可以通过
    MapSet
    轻松保证这一点

我不确定在这种情况下使用哪种方法更好。哪个更有效,哪个更实用?

如果您将数据保存在
地图集中,那么
Enum.member?
实际上会在下面调用
MapSet.member?
,因此您将拥有
MapSet
的所有优点。您可以看到相关的协议实现。

我认为您混淆了数据结构和。MapSet是实现协议的数据结构(和模块)。您可以调用地图集,但这不是必需的:

地图集=
MapSet.new()
|>MapSet.put(1)
|>地图集.放置(2)
|>地图集.放置(2)
|>地图集.放置(3)
|>地图集.放置(3)
|>地图集.放置(3)
Enum.join(映射集,“,”)
输出:

“1,2,3”

如果您已经有重复的数据结构,请使用

例如:

[1, 1, 2, 2, 2, 3, 4] |> Enum.uniq
结果:

[1, 2, 3, 4]

Enum.member?
是一个可以对许多不同数据结构(如列表和映射)进行操作的函数<代码>枚举成员?
本身不是数据结构。话虽如此,
地图集
听起来很适合您的目的。。。