我正在尝试仅在某些条件下增加变量
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
答案 0 :(得分:4)
函数返回的结果用作累加器 下一次迭代,递归。
Logger.info
会返回:ok
,因此您可能不希望这是您的最后一行。
如果条件不符合,您还必须返回acc
。
尝试:
Enum.reduce(items, 0, fn item, acc ->
if item.condition, do: acc + 1, else: acc
end)