Ruby on rails 测试多个变量是否小于一个值的Ruby方法

Ruby on rails 测试多个变量是否小于一个值的Ruby方法,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我正在寻找Ruby方法来检查两个(或更多)变量是否大于一个值 现在,我采用了“默认”方式: if score1 < WINNING_SCORE && score2 < WINNING_SCORE 如果得分1

我正在寻找Ruby方法来检查两个(或更多)变量是否大于一个值

现在,我采用了“默认”方式:

if score1 < WINNING_SCORE && score2 < WINNING_SCORE
如果得分1

我很好奇如何在干燥的环境中实现这一点。

如果它们在一系列的东西中,或者如果你把它们放在一个数组中,你可以这样做:

[score1, score2].all? { |score| score < WINNING_SCORE }
[score1,score2]。全部?{|得分|得分<获胜|得分}

阅读
all?

如果任何分数大于中奖分数,则条件变为假。使用
any
会更有效率

[score1, score2].any?{|score| score > WINNING_SCORE}

顺便说一句,您正在检查它们是否是
较小的
,而不是
较大的
Dunno,但在Lisp中,运算符可以取任意多个值:
(>3 0 2 1 4)
被解释为“3比其他每个操作数大吗?”。求和时相同:
(+3 2 1)
,和/或等@Hanky웃谢谢!修复了它。@vemv:不确定Lisp,但至少在Scheme
(>354)中,
是错误的。它不是“比其他每个操作数大3个”,而是“这些操作数是按升序排列的”。@Amadan很高兴知道!几乎。“更大”的反面不是“更小”,而是“更小或相等”。这个答案和@Nerve的工作都需要调整(@Nerve's需要调整,因为它看到的是&&语句的反面,即or语句,这需要一点点额外的脑力…)我同意,直到昨天我自己需要它们之前,我都没有考虑过这两个问题。很酷的东西