new(first, last, exclude_end = false) -> Range
[permalink][rdoc]first から last までの範囲オブジェクトを生成して返します。
exclude_end が真ならば終端を含まない範囲オブジェクトを生成します。exclude_end 省略時には終端を含みます。
例: 整数の範囲オブジェクトの場合
Range.new(1, 10) # => 1..10 Range.new(1, 10, true) # => 1...10
例: 日付オブジェクトの範囲オブジェクトの場合
require 'date' Range.new(Date.today, Date.today >> 1).each {|d| puts d } # => 2017-09-16 2017-09-17 ... 2017-10-16
例: IPアドレスの範囲オブジェクトの場合
require 'ipaddr' Range.new(IPAddr.new("192.0.2.1"), IPAddr.new("192.0.2.3")).each {|ip| puts ip} # => 192.0.2.1 192.0.2.2 192.0.2.3
例: 自作のオブジェクトの場合
MyInteger = Struct.new(:value) do def succ self.class.new(value + 1) end def <=>(other) value <=> other.value end def to_s value.to_s end end Range.new(MyInteger.new(1), MyInteger.new(3)).each {|i| puts i } # => 1 2 3