Elixir语言中 Enum.max
相关用法介绍如下。
用法:
max(enumerable, sorter \\ &>=/2, empty_fallback \\ fn -> raise Enum.EmptyError end)
@spec max(t(), (element(), element() -> boolean()) | module(), (() -> empty_result)) ::
element() | empty_result
when empty_result: any()
根据 Erlang 的术语排序返回 enumerable
中的最大元素。
默认情况下,比较是使用>=
排序器函数完成的。如果多个元素被认为是最大的,则返回找到的第一个。如果您希望返回被认为是最大的最后一个元素,则排序器函数不应为相等的元素返回 true。
如果可枚举为空,则调用提供的empty_fallback
。默认的 empty_fallback
引发
。Enum.EmptyError
例子
iex> Enum.max([1, 2, 3])
3
这个函数使用 Erlang 的术语排序这一事实意味着比较是结构化的而不是语义的。例如:
iex> Enum.max([~D[2017-03-31], ~D[2017-04-01]])
~D[2017-03-31]
在上面的示例中,
返回 3 月 31 日而不是 4 月 1 日,因为结构比较比较的是前一天。出于这个原因,大多数结构都提供了一个"compare"函数,例如max/2
,它接收两个结构并返回Date.compare/2
:lt
(小于)、:eq
(等于)和:gt
(大于)。如果你传递一个模块作为排序函数,Elixir 会自动使用该模块的compare/2
函数:
iex> Enum.max([~D[2017-03-31], ~D[2017-04-01]], Date)
~D[2017-04-01]
最后,如果您不想引发空枚举,则可以传递空回退:
iex> Enum.max([], &>=/2, fn -> 0 end)
0
相关用法
- Elixir Enum.max_by用法及代码示例
- Elixir Enum.map_join用法及代码示例
- Elixir Enum.map_every用法及代码示例
- Elixir Enum.map_reduce用法及代码示例
- Elixir Enum.map用法及代码示例
- Elixir Enum.map_intersperse用法及代码示例
- Elixir Enum.min_max用法及代码示例
- Elixir Enum.min_max_by用法及代码示例
- Elixir Enum.member?用法及代码示例
- Elixir Enum.min用法及代码示例
- Elixir Enum.min_by用法及代码示例
- Elixir Enum.unzip用法及代码示例
- Elixir Enum.reduce_while用法及代码示例
- Elixir Enum.at用法及代码示例
- Elixir Enum.split_with用法及代码示例
- Elixir Enum.dedup用法及代码示例
- Elixir Enum.sum用法及代码示例
- Elixir Enum.zip用法及代码示例
- Elixir Enum.find_value用法及代码示例
- Elixir Enum.product用法及代码示例
- Elixir Enum.zip_with用法及代码示例
- Elixir Enum.intersperse用法及代码示例
- Elixir Enum.flat_map用法及代码示例
- Elixir Enum.count用法及代码示例
- Elixir Enum.fetch用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Enum.max(enumerable, sorter \\ &>=/2, empty_fallback \\ fn -> raise Enum.EmptyError end)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。