如何使用ruby更好地返回指定范围内的值

如何使用ruby更好地返回指定范围内的值,ruby,Ruby,我向Numeric类添加了如下方法: class Numeric def limitate(min, max) return self if self.between?(min,max) return max if self > max min end end 如果值在指定的范围内,我想得到一个值,如果它在范围外,它应该返回最大值或最小值 我能写得更简单些吗?那怎么办呢?我觉得很遗憾,现在还没有。另一种书写方式是: v = [[v, min].max, m

我向
Numeric
类添加了如下方法:

class Numeric
  def limitate(min, max)
    return self if self.between?(min,max)
    return max if self > max
    min
  end
end
如果值在指定的范围内,我想得到一个值,如果它在范围外,它应该返回最大值或最小值

我能写得更简单些吗?那怎么办呢?

我觉得很遗憾,现在还没有。另一种书写方式是:

v = [[v, min].max, max].min

可能首先要确保最小值低于最大值。
否则,如果用户忘记了哪一个应该先执行,
min
max
,则您的方法将出现语义错误

min, max = max, min if min > max
另见: