Elixir Enum.max返回last而不是first元素

时间:2017-12-06 22:45:51

标签: elixir

  

如果多个元素被认为是最大元素,则返回找到的第一个元素。   https://hexdocs.pm/elixir/Enum.html#max/2

iex> [4, 0, 4] |> Enum.with_index |> Enum.max
{4, 2}

我本以为这会返回{4, 0},显然我错过了什么?

感谢您提供任何帮助以解决我的疑惑:)

1 个答案:

答案 0 :(得分:7)

这是因为在l = list(item1 = c(1,2,3), item2 = 'a', item3 = c(TRUE,FALSE,TRUE), item4 = c(2.5,4.2)) 之后,您的列表为|> Enum.with_index[{4, 0}, {0, 1}, {4, 2}]大于{4, 2},因为在比较元组时,当第一个元素相等时,比较第二个(然后是第三个等)元素。

测试您要测试的内容的正确方法是使用{4, 0}代替:

Enum.max_by/2