循环期间增加整数

时间:2018-01-23 22:31:03

标签: loops elixir

我正在尝试仅在某些条件下增加变量

Enum.reduce(items, 0, fn item, acc  ->
  if item.condition do
    acc = acc+1
    Logger.info acc
  end
end)

但是我得到了

** (ArithmeticError) bad argument in arithmetic expression

1 个答案:

答案 0 :(得分:4)

  

函数返回的结果用作累加器   下一次迭代,递归。

Logger.info会返回:ok,因此您可能不希望这是您的最后一行。

如果条件不符合,您还必须返回acc

尝试:

Enum.reduce(items, 0, fn item, acc  ->
  if item.condition, do: acc + 1, else: acc
end)