gpt4 book ai didi

ruby-on-rails - 将数字限制在上限/下限?

转载 作者:数据小太阳 更新时间:2023-10-29 06:42:58 28 4
gpt4 key购买 nike

在 Ruby 或 Rails 中,是否有一种内置方式或更优雅的方式将数字 num 限制为上限/下限?

例如像这样的东西:

def number_bounded (num, lower_bound, upper_bound)
return lower_bound if num < lower_bound
return upper_bound if num > upper_bound
num
end

最佳答案

这是一个聪明的方法:

[lower_bound, num, upper_bound].sort[1]

但这不是很可读。如果你只需要做一次,我就做

num < lower_bound ? lower_bound : (num > upper_bound ? upper_bound : num)

或者如果你多次需要它,猴子修补 Comparable 模块:

module Comparable
def bound(range)
return range.first if self < range.first
return range.last if self > range.last
self
end
end

所以你可以像这样使用它

num.bound(lower_bound..upper_bound)

你也可以只需要 ruby facets ,它添加了一个方法 clip 来执行此操作。

关于ruby-on-rails - 将数字限制在上限/下限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055805/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com