elixir - 长生不老药中的多个条件修改变量
问题描述
如何用 Elixir 编写这段 Ruby 代码?
value = 0
value += 3 if cond1
value += 2 if cond2
value += 8 if cond3
value -= 3 if cond4
解决方案
如果你想使用管道,你可以创建一个辅助函数。
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)
推荐阅读
- javascript - 通过单个 javascript 调整图像大小(无 ID)
- ruby - Ruby:使用块迭代方法的结果
- string - 如何读取外部变量
- indexing - 多种关键模式的高效 Redis SCAN
- typescript - 键入一个函数对象,该对象使用字符串键动态调用函数并将参数传递给返回的函数
- docker - 在 Linux 上增加对 docker daemon (dockerd) 的内存分配
- mobile - 灯塔数字与观察到的性能之间的差异
- c++ - 在虚拟 2D 环境中有效地随机放置对象
- javascript - 如何模拟用户输入表单
- android - 放置在 Listview 上时,Android Searchview 不会触发