在reduce block 中通过2个选择来分离逻辑的有效方法是什么?
我的意思是,如果选择等于 1,则求和;如果选择等于 2,则求积
这是我的代码,但它不会查找选择是否等于 2。它仅适用于选择 1 和其他选项。
(1..10).reduce(choice == 1 ? :+ : :*)
我如何在同一个reduce block 中处理选择1和选择2?
最佳答案
这几乎奏效了。您需要:
(1..10).reduce(choice == 1 ? :+ : :*)
更新:事实证明,真正的问题是需要一个不能简单地默认为标量积的表达式模板。显然,抛出异常(当选择超出范围时)是可以的,或者至少是一个有用的模板占位符。然后我想到了几个表达方式:
(1..10).reduce({1 => :+, 2 => :*}[choice])
(1..10).reduce([nil, :+, :*][choice])
关于ruby - 在reduce block 中使用选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20600305/