今回はRangeオブジェクトの学習方法について解説していきます。
その他のRubyの基礎については以下を参照ください。
Rangeオブジェクトの宣言
以下のようにRangeオブジェクトを宣言することができます。
[23] pry(main)> 1..4
=> 1..4
[24] pry(main)> (1..4).class
=> Range
Rangeオブジェクトの中身
Rangeオブジェクトは宣言方法によって中身が以下のように変わります。
「..」と二つピリオドを記載すると数値のRangeが作成され、「…」と三つのピリオドを記載するとマイナス1された数値のRangeが作成されます。
[25] pry(main)> (1..4).to_a
=> [1, 2, 3, 4]
[26] pry(main)> (1...4).to_a
=> [1, 2, 3]
Rangeオブジェクトで文字を扱う
上記では数値を宣言しましたが、文字でも使用することができます。
[27] pry(main)> ('a'..'z').to_a
=> ["a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z"]
Rangeオブジェクトでeachメソッドの利用
以下のようにRangeオブジェクトの中身をeachメソッドを使用して取り出すことができます。
[29] pry(main)> (1..30).each {
[29] pry(main)* |day| puts "#{day}日目"
[29] pry(main)* }
1日目
2日目
3日目
4日目
5日目
6日目
7日目
8日目
9日目
10日目
11日目
12日目
13日目
14日目
15日目
16日目
17日目
18日目
19日目
20日目
21日目
22日目
23日目
24日目
25日目
26日目
27日目
28日目
29日目
30日目
=> 1..30
まとめ
数値、文字、日付などの範囲を扱う際には使用することになりますので、覚えておきましょう。
https://amzn.to/2KXix16
コメント