Ruby on rails 测试多个变量是否小于一个值的Ruby方法
我正在寻找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
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语句,这需要一点点额外的脑力…)我同意,直到昨天我自己需要它们之前,我都没有考虑过这两个问题。很酷的东西