Posted at

[Ruby]Comparableモジュールのメソッド

More than 1 year has passed since last update.

1年くらい前にRubyの勉強のためにComparableモジュールの便利メソッドをまとめたもの

参考

https://docs.ruby-lang.org/ja/latest/class/Comparable.html


範囲内の値か判定する

between?

引数で指定した値の範囲内か判定する

num = 5

num.between?(1, 5) # => true

str = 'c'
str.between?('a', 'g') # => true


範囲内の値を返す

clamp

指定範囲内の値を返す。

・指定範囲内であればレシーバを返す

・下限値より小さければ下限値を返す

・上限値より大きければ上限値を返す

min = 10

max = 30

5.clamp(min, max) # => 10
70.clamp(min, max) # => 30
15.clamp(min, max) # => 15

clamp以前はこんな状態でわかりにくかったのでclampわかりやすい

min = 10

max = 30

[[5, min].max, max].min => 10