在 Elixir Lang 中对列表元素进行排序

Sort List elements in Elixir Lang

我有一个字符串列表,我想用两种方式排序。

  1. 按字母顺序
  2. 按字符串长度

要按字母顺序对字符串列表进行排序,您只需使用 Enum.sort/1,它将按默认顺序(即字符串的字母顺序)对项目进行排序。

iex> Enum.sort(["b", "aaa", "cc"])
["aaa", "b", "cc"]

要按不同的 属性 对列表进行排序,例如字符串长度,您可以使用 Enum.sort_by/2,它将映射函数作为第二个参数。然后将根据应用于每个元素的此函数的结果对值进行排序。

iex> Enum.sort_by(["b", "aaa", "cc"], &String.length/1)
["b", "cc", "aaa"]