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


Elixir Enum.count_until用法及代码示例


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

用法一

count_until(enumerable, limit)
(自 1.12.0 起)
@spec count_until(t(), pos_integer()) :: non_neg_integer()

计算在 limit 处的可枚举停止。

这对于检查可枚举的计数的某些属性很有用,而不必实际计算整个可枚举。例如,如果您想检查计数是否准确、至少或大于一个值。

如果 enumerable 实现了 Enumerable.count/1 ,则不会遍历 enumerable 并且我们返回两个数字中较小的一个。要强制枚举,请使用 count_until/3 fn _ -> true end 作为第二个参数。

例子

iex> Enum.count_until(1..20, 5)
5
iex> Enum.count_until(1..20, 50)
20
iex> Enum.count_until(1..10, 10) == 10 # At least 10
true
iex> Enum.count_until(1..11, 10 + 1) > 10 # More than 10
true
iex> Enum.count_until(1..5, 10) < 10 # Less than 10
true
iex> Enum.count_until(1..10, 10 + 1) == 10 # Exactly ten
true

用法二

count_until(enumerable, fun, limit)
(自 1.12.0 起)
@spec count_until(t(), (element() -> as_boolean(term())), pos_integer()) ::
  non_neg_integer()

计算可枚举中 fun 返回真值的元素,在 limit 处停止。

有关详细信息,请参阅 count/2 count_until/3

例子

iex> Enum.count_until(1..20, fn x -> rem(x, 2) == 0 end, 7)
7
iex> Enum.count_until(1..20, fn x -> rem(x, 2) == 0 end, 11)
10

相关用法


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