Ruby eachが初心者でも書ける!知っていると便利な知識とは?
web開発
2016/09/28

プログラミング言語Rubyのeachメソッドを、Ruby初心者向けに解説します。
Rubyのeachメソッドは、for式(for文)と似ており、繰り返し処理を行うメソッドです。
※プログラミング言語Rubyでは、あまりfor式は使われません。for式に関する詳しい説明は、for式について解説した記事をご覧ください。
本記事では、Ruby eachメソッドの基本的な使い方から、知っておくと便利な知識まで丁寧に解説します。
本記事を読み終える頃には、Ruby eachメソッドの基本が理解できているでしょう。ぜひ最後まで読んで、Ruby eachメソッドを理解してください。
Ruby eachメソッドの基本
まずは、Ruby eachメソッドの基本的な書き方から解説します。
Ruby eachメソッドは、主に配列オブジェクトに対して実行するメソッドです。
※配列があまり理解できていない人は、配列について詳しく解説した記事をご覧ください。
配列オブジェクトに対してeachメソッドを実行すると、配列の要素を順番に取り出し、繰り返し処理を行うことができます。
eachメソッドの基本的な書き方は以下のようになります。
1 2 3 |
配列オブジェクト.each do |変数| #処理 end |
では、eachメソッドの具体例を紹介します。下のソースコードをご覧ください。
【eachメソッドの具体例】
1 2 3 4 |
fruites = ["メロン", "ブドウ", "リンゴ"] fruites.each do |fruite| puts fruite end |
【出力結果】
1 2 3 |
メロン ブドウ リンゴ |
まず、ソースコードの1行目でfruitesという配列オブジェクトを用意しています。
そして、配列オブジェクトfruitesの要素(メロン・ブドウ・リンゴ)を順番に変数fruiteに代入し、putsで出力しています。
配列の名前はfruitesで複数形、eachメソッド内での変数はfruiteで単数形になっていることに注意してください。
また、eachメソッド内で使用したfruiteという変数は「ブロックパラメータ」と呼ばれているので、ぜひ覚えておきましょう。
Ruby eachメソッドで知っておくと便利な知識
配列の要素とともに要素の番号(添字)も扱いたいときは、each_with_indexメソッドを使うと便利です。
each_with_indexについて解説した記事も合わせて読むと、Ruby eachメソッドについての理解がさらに深まるので、ぜひご覧ください。
Ruby eachメソッドの基本的な書き方の解説は以上になります。
Ruby eachメソッドを範囲で使ってみよう
Ruby eachメソッドは、「範囲」でも使用することができます。
範囲は、配列やハッシュ(連想配列)と同じく、集まりを表すオブジェクトです。したがって、範囲でもeachメソッドが使用できます。
範囲は、最初の要素と最後の要素を..(ピリオド2個)で繋げて表現します。
【範囲の例】
1 |
range = 1..20 |
これで、rangeという変数に1~20までの数字が順番に代入されました。
では、範囲でeachメソッドを使ってみます。下のソースコードをご覧ください。
【範囲でeachメソッドを使う例】
1 2 3 |
(1..3).each do |number| puts number end |
【出力結果】
1 2 3 |
1 2 3 |
変数(ブロックパラメータ)であるnumberに1~3までの数字が順番に代入されてputsされました。
Ruby eachメソッドを範囲で使う解説は以上です。
Ruby eachメソッドをハッシュで使ってみよう
最後に、Ruby eachメソッドをハッシュ(連想配列)で使う方法を紹介します。
※ハッシュ(連想配列)があまり理解できていない人は、配列について解説した記事の「5:ハッシュ(連想配列)について」をご覧ください。
ハッシュ(連想配列)のキーと値を順番に取り出す時にも、eachメソッドが使えます。
変数(ブロックパラメータ)を2つ用意することで、キーと値を順番に取り出せます。
では、ソースコードの例をご覧ください。
【ハッシュ(連想配列)でeachメソッドを使う例】
1 2 3 4 |
items = {"鉛筆" => 100, "消しゴム" => 50, "ノート" => 200} items.each do |key, value| puts "#{key}は#{value}円です。" end |
【出力結果】
1 2 3 |
鉛筆は100円です。 消しゴムは50円です。 ノートは200円です。 |
※#{}は変数展開といいます。#{}の中に式や変数を入れると、その式や変数が文字列の中に展開されます。
【変数展開の例】
1 2 |
name = "Sato" puts "私の名前は#{name}です。" |
【出力結果】
1 |
私の名前はSatoです。 |
今回はkey、valueという2つの変数(ブロックパラメータ)を用意しました。
keyという変数には配列itemsのキー(鉛筆・消しゴム・ノート)が順番に代入されます。
valueという変数には、配列itemsの値(100・50・200)が順番に代入されます。
Ruby eachメソッドをハッシュ(連想配列)で使う解説は以上です。
いかがでしたか?Ruby eachメソッドの基本が理解できましたか?
プログラミング言語Rubyを学習した後は、Ruby on Railsというフレームワークを使ったWEBアプリケーションの開発にチャレンジしてみてください!
Ruby on Railsでも、今回学習したeachメソッドは大変よく使うので、eachメソッドは必ず理解しておきましょう。
udemyでは、初心者にもやさしいRuby on Railsの講座を開設しています。ぜひ受講してWEBアプリケーションを開発してみましょう!