当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Enum.reduce_while用法及代码示例


Elixir语言中 Enum.reduce_while 相关用法介绍如下。

用法:

reduce_while(enumerable, acc, fun)
@spec reduce_while(t(), any(), (element(), any() -> {:cont, any()} | {:halt, any()})) ::
  any()

减少 enumerable 直到 fun 返回 {:halt, term}

fun 的返回值预计为

  • {:cont, acc}acc 作为新累加器继续减少或
  • {:halt, acc} 停止还原

如果 fun 返回 {:halt, acc} 则减少停止并且函数返回 acc 。否则,如果 enumerable 用尽,则该函数返回最后一个 {:cont, acc} 的累加器。

例子

iex> Enum.reduce_while(1..100, 0, fn x, acc ->
...>   if x < 5, do: {:cont, acc + x}, else: {:halt, acc}
...> end)
10
iex> Enum.reduce_while(1..100, 0, fn x, acc ->
...>   if x > 0, do: {:cont, acc + x}, else: {:halt, acc}
...> end)
5050

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Enum.reduce_while(enumerable, acc, fun)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。