红宝石中的减法不小于1

时间:2017-04-25 19:17:11

标签: ruby

我试图找出在ruby中使用减法块的最佳方法,如果结果小于1,结果默认为1

我尝试了一个三元运算符,但显然0结果为真:

(2 - 2) ? (2 - 2) : 1

是否有简洁的方式来表达4 - 2 = 22 - 2 = 13 - 2 = 1

1 个答案:

答案 0 :(得分:10)

您可以使用Enumerable#max

def special_subtraction(a, b)
  [a - b, 1].max
end

special_subtraction(4, 2)
#=> 2
special_subtraction(2, 2)
#=> 1
special_subtraction(3, 2)
#=> 1

P.S。

  

我尝试了一个三元运算符,但显然0结果为真:

在Ruby中,除nilfalse之外的所有内容都被认为是真实的。