红宝石中的减法不小于1

num*_*s1x 2 ruby

我试图找出在ruby中有一个减法块的最佳方法,1如果结果小于,则结果默认为1.

我尝试了一个三元运算符,但0结果显然是正确的:

(2 - 2) ? (2 - 2) : 1
Run Code Online (Sandbox Code Playgroud)

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

And*_*eko 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
Run Code Online (Sandbox Code Playgroud)

PS

我尝试了一个三元运算符,但0结果显然是正确的:

在Ruby中,所有人都期望nil并且false被认为是真实的.

  • `[a - b,1] .max` :) (3认同)
  • 当然,拿它:) (2认同)