1
1

More than 1 year has passed since last update.

Ruby 範囲オブジェクトの使い方

Posted at

はじめに

先日、範囲オブジェクトを教えていただいたので、使い方を自分なりに学習していこうと思います。

環境

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

変換系のメソッドは、他にも文字列や数値、ハッシュ型に変換するものがあります。

おわりに

範囲オブジェクトには記載した他にも、最初の要素、最後の要素、最大値、最小値、要素数などを取得するメソッドがあります。
必要に応じて使用していきたいと思います。

参考

公式リファレンス-classRange
【Ruby】 to_aメソッドの使い方を理解しよう

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1