clamp(min, max) -> RangeRuby 4.1 から[permalink][rdoc][edit]clamp(range) -> Range-
selfの始端・終端をminとmaxの範囲に、またはrangeの始端・終端の範囲に収まるように丸めた、新しい Range オブジェクトを返します。- [PARAM]
min: - 丸める範囲の下限を指定します。
- [PARAM]
max: - 丸める範囲の上限を指定します。
- [PARAM]
range: - 丸める範囲を Range オブジェクトで指定します。
- [EXCEPTION]
TypeError: -
rangeに Range でないオブジェクトを指定した場合に発生します。 - [EXCEPTION]
ArgumentError: -
minがmaxより大きい場合に発生します。
返される Range オブジェクトは、次のいずれかを満たす場合に終端を含みません。
- 返される終端の値が、
selfまたはrangeの終端を含まない値である場合。 selfの始端・終端の両方が下限に丸められた場合、または両方が上限に丸められた 場合。この場合selfは丸める範囲の外側に完全に外れているため、終端を除くことで 空の範囲として表現されます。
それ以外の場合、返される Range オブジェクトは終端を含みます。
例p (1..10).clamp(3, 7) # => 3..7 p (1...10).clamp(3, 7) # => 3..7 p (1...10).clamp(3, 10) # => 3...10 p (0...).clamp(0, 10) # => 0..10 p (1..10).clamp(3..7) # => 3..7 p (1..10).clamp(3...7) # => 3...7 p (1..5).clamp(3...7) # => 3..5 p (..10).clamp(3, 7) # => 3..7 p (...10).clamp(3, 7) # => 3..7 p (..10).clamp(3...7) # => 3...7 p (..5).clamp(3...7) # => 3..5 p (1..10).clamp(20..30) # => 20...20 p (1..10).clamp(-10..0) # => 0...0 p (..10).clamp(20..30) # => 20...20 p (1..10).clamp(..7) # => 1..7 p (1..10).clamp(...7) # => 1...7 p (1..5).clamp(...7) # => 1..5 p (1..10).clamp(3..) # => 3..10 p (1..10).clamp(3...) # => 3..10 p (1..).clamp(3..) # => 3.. p (1...).clamp(3...) # => 3...[SEE_ALSO] Comparable#clamp
[SEE_ALSO] Range#cover?
- [PARAM]