Rubyのeachメソッドの使い方
Rubyのeachメソッドは、配列やハッシュなどのコレクションに対して繰り返し処理を行うためのメソッドです。今回は、eachメソッドの使い方を10の例を用いて解説していきます。
1. 配列の要素を一つずつ表示する
まず最初に、配列の全ての要素を順番に表示する基本的な使い方から見ていきましょう。
1 2 3 4 |
array = [1, 2, 3, 4, 5] array.each do |num| puts num end |
出力結果
1
2
3
4
5
KindleUnlimited会員であれば、全ての本をご覧頂けます。 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版
2. 配列の各要素に2を掛ける
eachメソッドは、各要素に対して何かしらの処理を行う場合にも使います。以下の例では、配列の各要素に2を掛けた結果を表示しています。
1 2 3 4 |
array = [1, 2, 3, 4, 5] array.each do |num| puts num * 2 end |
出力結果
2
4
6
8
10
3. 配列の要素とそのインデックスを表示する
eachメソッドには、配列の要素だけでなく、そのインデックスも一緒に取得することができます。これは、each_with_indexメソッドを使用します。
1 2 3 4 |
array = ["Apple", "Banana", "Cherry"] array.each_with_index do |item, index| puts "#{index}: #{item}" end |
出力結果
0: Apple
1: Banana
2: Cherry
4. ハッシュのキーと値を表示する
eachメソッドは、ハッシュに対しても使用できます。このとき、ブロックにはキーと値の2つの変数を渡します。
1 2 3 4 |
hash = { "Apple" => "Red", "Banana" => "Yellow", "Cherry" => "Red" } hash.each do |key, value| puts "#{key}: #{value}" end |
出力結果
Apple: Red
Banana: Yellow
Cherry: Red
5. ハッシュのキーだけを表示する
ハッシュのキーだけを取得したい場合は、keysメソッドを使ってからeachを使用します。
1 2 3 4 |
hash = { "Apple" => "Red", "Banana" => "Yellow", "Cherry" => "Red" } hash.keys.each do |key| puts key end |
出力結果
Apple
Banana
Cherry
6. ハッシュの値だけを表示する
同様に、ハッシュの値だけを取得したい場合は、valuesメソッドを使います。
1 2 3 4 |
hash = { "Apple" => "Red", "Banana" => "Yellow", "Cherry" => "Red" } hash.values.each do |value| puts value end |
出力結果
Red
Yellow
Red
7. 文字列の各文字を表示する
文字列に対してもeachメソッドを使用できます。これにより、文字列の各文字に対する操作が可能です。
1 2 3 4 |
string = "Hello" string.each_char do |char| puts char end |
出力結果
H
e
l
l
o
8. 範囲オブジェクトを利用する
eachメソッドは、範囲オブジェクト(Range)に対しても使用できます。以下の例では、1から5までの範囲の全ての数値を表示しています。
1 2 3 |
(1..5).each do |num| puts num end |
出力結果
1
2
3
4
5
9. 条件に合う要素だけを選択する
eachメソッドと組み合わせて使うと便利なメソッドの一つに、selectメソッドがあります。以下の例では、配列の要素のうち偶数だけを選択しています。
1 2 3 4 5 6 7 |
array = [1, 2, 3, 4, 5] even_numbers = array.select do |num| num.even? end even_numbers.each do |num| puts num end |
出力結果
2
4
10. 各要素に対する処理の結果を新しい配列として取得する
最後に、mapメソッドを紹介します。これは、各要素に対する処理の結果を新しい配列として取得します。
1 2 3 4 5 6 7 |
array = [1, 2, 3, 4, 5] new_array = array.map do |num| num * 2 end new_array.each do |num| puts num end |
出力結果
2
4
6
8
10
まとめ
最後にeachメソッドについてのまとめです。
まとめ
- eachメソッドはRubyの強力な繰り返し処理のツールで、配列やハッシュ、文字列、範囲など、さまざまなオブジェクトに対して使用できます。
- ブロックを使って、各要素に対する処理を定義します。
- selectメソッドやmapメソッドと組み合わせることで、更に強力な操作が可能になります。