我向Numeric
类添加了一个方法,如下所示:
class Numeric
def limitate(min, max)
return self if self.between?(min,max)
return max if self > max
min
end
end
如果值在指定范围内,我想得到一个值,如果它在范围之外,它应该返回最大值或最小值。
我可以更简单地书写吗?怎么样?
答案 0 :(得分:2)
遗憾的是no clamp in Ruby但我认为。另一种写作方式是:
v = [[v, min].max, max].min
答案 1 :(得分:0)
也许确保min低于最大值
否则,如果用户忘记哪一个应该先行min
或max
,则您的方法会出现语义错误。
min, max = max, min if min > max