首页 > 解决方案 > 长生不老药中的多个条件修改变量

问题描述

如何用 Elixir 编写这段 Ruby 代码?

value = 0
value += 3 if cond1
value += 2 if cond2
value += 8 if cond3
value -= 3 if cond4

标签: elixir

解决方案


如果你想使用管道,你可以创建一个辅助函数。

def add_if(total, condition, value) do
  if condition, do: total + value, else: total
end


value =
  0
  |> add_if(cond1, 3)
  |> add_if(cond2, 2)
  |> add_if(cond3, 8)
  |> add_if(cond4, -3)

根据您在做什么,在修改数据的任何函数中都有条件/逻辑也是有意义的。所以你的管道可能看起来像这样:

0
|> maybe_add_three("little pigs")
|> increment_by_two()
|> sum_with([4, 3, 1])
|> go_back_three_spaces(true)

推荐阅读