gpt4 book ai didi

Elixir Enum.max 返回最后一个而不是第一个元素

转载 作者:行者123 更新时间:2023-12-04 07:40:52 25 4
gpt4 key购买 nike

If multiple elements are considered maximal, the first one that was found is returned. 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}

关于Elixir Enum.max 返回最后一个而不是第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47684771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com