こんにちは。tekute-kuです。
今回はRubyに出てくるeachメソッドをまとめてみたいと思います。初学者が初学者向きに書いています。
記事を書いた目的
eachメソッドは便利でよく使いますが、他にどんな使い方があるのか気になったためまとめてみました。自分の備忘録と他の方の役に立てば幸いです。
eachメソッドとは
eachメソッドとは主に配列の要素分の処理を繰り返し実行したい時に使用するメソッドです。配列を指定してeachメソッドを実行すると、配列のインデックス番号0から繰り返し処理が実行されていきます。
インデックス番号とは配列に割り振られた番号で0から始まります。
例:[ くま , トラ , ライオン , ゾウ ] ⇨[ 0 , 1 , 2 , 3 ]
eachメソッドの書き方
2通りの書き方があり、「do」を使って「end」で終了する書き方と「do」、「end」を使用しない書き方があります。
オブジェクト.each do |変数|
繰り返し処理
end
「do」、「end」を省略した書き方
オブジェクト.each { |変数|
繰り返し処理
}
ブロック内で配列の要素を使用するときは変数名を指定します。
変数名は任意ですので何でも構いません。
eachメソッドにおける3つの基本的な使い方
eachメソッドは様々な使い方がありますが、ここでは基本的な3つの使い方を紹介していきます。
- 配列の要素分繰り返す
- 範囲オブジェクトを参照する
- ハッシュの要素分繰り返す
順番に見ていきましょう!
配列の要素分繰り返す
最も基本的な使い方です。
実際にプログラムを書いて確認していきましょう。
animals = ["lion","tiger","bear","elephant"]
animals.each do |animal|
puts animal
end
実行結果
lion tiger bear elephant
配列を順番に処理しているのがわかります。
ちなみに|変数|の変数名は何でも構いません。
範囲オブジェクトを参照する
範囲オブジェクトとは範囲が指定されているオブジェクトです。
例
range = 1..15
これが範囲オブジェクトです。1から15の範囲を指定しています。
これをeachメソッドを使って処理していきます。
range = 1..15
range.each do |a|
puts a
end
実行結果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1から15を簡単に参照することができました。
ハッシュの要素分繰り返す
eachメソッドはハッシュの要素についても繰り返し処理が可能です。
ハッシュの場合は以下のように書きます。
ハッシュ.each do |キー,値|
くりかえし繰り返し処理
end
ではプログラムして動かしてみます。
今回はハッシュで定義したhashオブジェクトをキーと値で順番に取り出していきます。
hash = {"taro": 165, "jiro": 175, "ichiro": 166} hash.each do |key,value| puts "#{key}, #{value}" end
実行結果
taro,165
jiro,175
ichiro,166
このようにハッシュで定義されたオブジェクトも簡単に順番に処理することができます。
まとめ
今回はeachメソッドの基本的な3つの使い方をまとめてみました。eachメソッドは便利でよく使うメソッドなので理解しておきたいですね。eachメソッドはこの他にもいろんな繰り返し処理を実行できるので今後はそれもまとめたいと思います。
コメント