はじめに
先日、範囲オブジェクトを教えていただいたので、使い方を自分なりに学習していこうと思います。
環境
ruby 2.6.5
範囲オブジェクトの概要
何らかの範囲を表すオブジェクトです。
例えば、
- 数値 1~10
- 日付 2022-3-1~2022-3-10
- 文字列 "a"~"z"
などを表すことができます。
Rangeクラス。
.rb
range = 1..10
puts range.class
ターミナル.
Range
範囲オブジェクトの書き方
.rb
Range.new(1, 5) # 1 以上 5 以下
1..5 # 同上
1...5 # 1 以上 5 未満
数字部分に「nil」を用いることで、「以上」「以下」というオブジェクトを作成することもできます。
範囲オブジェクトの機能
eachメソッド
範囲オブジェクトの最初から最後までの値を1つずつ取り出し、繰り返し処理を行うことができます。
.rb
range = 1..10
range.each do |data|
puts data
end
ターミナル.
1
2
3
4
5
6
7
8
9
10
.to_aメソッド
範囲オブジェクトを配列に変換することができます。
.rb
range = 1..10
puts "rangeのクラスと値"
puts range.class
puts range
array = range.to_a
puts "arrayのクラスと値"
puts array.class
puts array
ターミナル.
rangeのクラスと値
Range
1..10
arrayのクラスと値
Array
1
2
3
4
5
6
7
8
9
10
変換系のメソッドは、他にも文字列や数値、ハッシュ型に変換するものがあります。
おわりに
範囲オブジェクトには記載した他にも、最初の要素、最後の要素、最大値、最小値、要素数などを取得するメソッドがあります。
必要に応じて使用していきたいと思います。