在Elixir Lang中对List元素进行排序

Mau*_*aes 14 elixir

我有一个字符串列表,我想以两种方式订购.

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

Pat*_*ity 34

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

iex> Enum.sort(["b", "aaa", "cc"])
["aaa", "b", "cc"]
Run Code Online (Sandbox Code Playgroud)

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

iex> Enum.sort_by(["b", "aaa", "cc"], &String.length/1)
["b", "cc", "aaa"]
Run Code Online (Sandbox Code Playgroud)