如果将多个元素视为最大元素,则返回发现的第一个元素。 https://hexdocs.pm/elixir/enum.html#max/2
iex> [4, 0, 4] |> Enum.with_index |> Enum.max
{4, 2}
我本来希望这会返回{4, 0}
,显然我缺少某些内容?
感谢您的任何帮助,以清除我的混乱:)
那是因为在|> Enum.with_index
之后,您的列表为[{4, 0}, {0, 1}, {4, 2}]
,{4, 2}
大于{4, 0}
,就像比较元素时,第一个元素相等时,第二个元素是相等的,第二个元素(然后是第三等)元素为比较
测试您要测试的内容的正确方法是使用Enum.max_by/2
而不是这样:
iex(1)> [4, 0, 4] |> Enum.with_index |> Enum.max_by(fn {x, i} -> x end)
{4, 0}