Ruby 为 Enumerable 提供了这个很棒的方法group_by。Elixir有类似的东西吗?我在 Enum 模块上找不到此功能。谢谢
问问题
955 次
2 回答
4
还没有。我们没有添加它,因为我们正在等待地图。它将被添加到 v0.13 分支。:)
* 更新 *
对于没有注意到下面评论的任何人,现在已经添加了它。
于 2014-02-17T08:00:57.747 回答
3
这是Enum 模块中group_by/3的示例。
根据长度对字符串数组进行分组:
iex(12)> ["ant", "buffalo", "cat", "dingo"] |> Enum.group_by(&String.length/1)
%{3 => ["cat", "ant"], 5 => ["dingo"], 7 => ["buffalo"]}
从文档:
根据乐趣将集合分成组。
结果是一个字典(默认情况下是一个映射),其中每个键是一个组,每个值是一个集合中的元素列表,其中 fun 为其返回了该组。不一定会保留排序。
于 2015-08-16T04:19:58.120 回答