Ruby eachが初心者でも書ける!知っていると便利な知識とは?

web開発

2016/09/28

web開発

プログラミング言語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メソッドの基本的な書き方は以下のようになります。

では、eachメソッドの具体例を紹介します。下のソースコードをご覧ください。

【eachメソッドの具体例】

【出力結果】

まず、ソースコードの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個)で繋げて表現します。

【範囲の例】

これで、rangeという変数に1~20までの数字が順番に代入されました。

では、範囲でeachメソッドを使ってみます。下のソースコードをご覧ください。

【範囲でeachメソッドを使う例】

【出力結果】

変数(ブロックパラメータ)であるnumberに1~3までの数字が順番に代入されてputsされました。

Ruby eachメソッドを範囲で使う解説は以上です。

 

Ruby eachメソッドをハッシュで使ってみよう

最後に、Ruby eachメソッドをハッシュ(連想配列)で使う方法を紹介します。

※ハッシュ(連想配列)があまり理解できていない人は、配列について解説した記事の「5:ハッシュ(連想配列)について」をご覧ください。

ハッシュ(連想配列)のキーと値を順番に取り出す時にも、eachメソッドが使えます。

変数(ブロックパラメータ)を2つ用意することで、キーと値を順番に取り出せます。

では、ソースコードの例をご覧ください。

【ハッシュ(連想配列)でeachメソッドを使う例】

【出力結果】

※#{}は変数展開といいます。#{}の中に式や変数を入れると、その式や変数が文字列の中に展開されます。

【変数展開の例】

【出力結果】

今回は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アプリケーションを開発してみましょう!

  

【3日で学べる!】短期間でWEBサービスが作れるようになります!

【3日でできる】はじめての Ruby on Rails 4 入門(Rubyから学べる) - Udemy

【3日でできる】はじめての Ruby on Rails 4 入門(Rubyから学べる) - Udemy

Ruby on Railsをマスターしたら、あなたはどんなWebサービスを作りますか?

動画で学習する

  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー
  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー

関連記事