💎

RubyのRangeオブジェクトについて解説

2021/03/30に公開

Rangeオブジェクトとは?

ある値の範囲を扱うためのオブジェクトのことです。
例えば 1~3 を表すときは次のように表現します。

irb(main):001:0> 1..3
=> 1..3
irb(main):002:0> (1..3).class
=> Range

to_a というメソッドを使って配列(Array)に変換することも出来ます。

irb(main):003:0> (1..3).to_a
=> [1, 2, 3]
irb(main):004:0> (1..3).to_a.class
=> Array

ちなみにドットを3つにすると、最後の値を含まない Range オブジェクトを作れます。

irb(main):006:0> (1...3).to_a
=> [1, 2] 

また、アルファベットについても Range オブジェクトを生成できます。

irb(main):011:0> ('a'..'e').to_a
=> ["a", "b", "c", "d", "e"]

Range オブジェクトの値の取り出し

配列と同じく each メソッドでそれぞれの値を展開して取り出せます。

irb(main):016:0> (1..5).each { |i| puts "#{i}" }
1
2
3
4
5
=> 1..5

Discussion