我只需要保留唯一的值,我很困惑应该使用哪种数据结构。稍后,我将只读取整个数据结构。
MapSet
,它将仅包含唯一元素。Enum.member?
检查是否已经有物品-但我可以通过MapSet
轻松保证。我不确定在这种情况下哪种方法更好。哪种方法更有效,哪种方法更好?
答案 0 :(得分:4)
如果将数据保存在MapSet
中,那么Enum.member?
实际上将在下面调用MapSet.member?
,因此您将拥有MapSet
的所有优点。您可以看到相关的协议实现here。
答案 1 :(得分:1)
我认为您在混淆数据结构和protocols。 MapSet是实现Enumerable
协议的数据结构(和模块)。您可以在MapSet上调用Enum.member/2
,但这不是必需的:
mapset =
MapSet.new()
|> MapSet.put(1)
|> MapSet.put(2)
|> MapSet.put(2)
|> MapSet.put(3)
|> MapSet.put(3)
|> MapSet.put(3)
Enum.join(mapset, ",")
输出:
"1,2,3"
答案 2 :(得分:0)