Множественная условная модифицируемая переменная в эликсире - PullRequest
0 голосов
/ 24 сентября 2019

Как мне написать этот код на Ruby с помощью Elixir?

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

Ответы [ 2 ]

4 голосов
/ 24 сентября 2019

Вы можете создать вспомогательную функцию, если хотите использовать трубопровод.

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)
3 голосов
/ 24 сентября 2019
val = 0
val = if cond1, do: val + 3, else: val
val = if cond2, do: val + 2, else: val
...
...