ruby - 有没有限制/限制数字的方法?

标签 ruby clamp

我编写了以下代码,它使 x 保持在 (a..b) 范围内。在伪代码中:

(if x < a, x = a; if x > b, x = b)

在 Ruby 中它会是这样的:

x = [a, [x, b].min].max

因为它是非常基本和有用的功能,我想知道在 ruby​​ 中是否有本地方法可以做到这一点。

从 Ruby 2.3.3 开始,显然没有这样的方法,最短/更易读的方法是什么?

我发现:

x = [a, x, b].sort[1]

到目前为止,但我不确定它是否更具可读性。

最佳答案

Ruby 2.4.0 引入了 Comparable#clamp :

523.clamp(0, 100)        #=> 100

关于ruby - 有没有限制/限制数字的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12020787/

相关文章:

swift - "clamp"Swift 中两个值之间的数字的标准方法

mysql - gem mysql2 gem 未加载

java - 注释是 Java 中的某种 DSL 吗?

python - 如何在python中实现平滑的钳位功能?

php - PHP 中是否存在 "clamp"数字函数?

c++ - std::clamp - 检测函数返回值是否绑定(bind)到 const T&

ruby-on-rails - 使用 acts_as_xlsx ruby​​ gem 返回相关字段

ruby - 传递过程和方法

ruby-on-rails - Ruby 线程上的重复结果

c# - 我在哪里可以找到 .NET 中的 "clamp"函数?