我试图找出在ruby中使用减法块的最佳方法,如果结果小于1
,结果默认为1
。
我尝试了一个三元运算符,但显然0
结果为真:
(2 - 2) ? (2 - 2) : 1
是否有简洁的方式来表达4 - 2 = 2
,2 - 2 = 1
和3 - 2 = 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中,除nil
和false
之外的所有内容都被认为是真实的。