0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🛴ループ処理まとめ🔁❷ ー .eachメソッド

Last updated at Posted at 2025-05-28

Ruby の .each メソッド入門

Rubyで最も多く使われる繰り返し処理メソッドが .each です。ArrayHashRangeEnumeratorといったコレクションから要素を順次取り出し、ブロック内で任意の処理を実行します。
for文よりも可読性が高く、Rubyコミュニティでも圧倒的に使用頻度が高い点が特徴です。


.each メソッドとは

  • 繰り返し処理用のメソッド
  • コレクション(ArrayHashRangeEnumerator など)から要素を順次取り出し、ブロックを実行
  • for文よりも直感的で、Rubyらしい書き方
  • 「要素の数だけブロックを繰り返す」というイメージ

基本的な記法

コレクション.each do |要素|
  # 要素に対する処理
end

具体例

[1, 2, 3].each do |n|
  puts n * 2
end

# 実行結果
2
4
6

⚠️戻り値に関する注意

.eachは「元のコレクション自身」を返します。要素を変換して別の配列を作りたい場合はmapを使い分けましょう。

arr     = [1, 2, 3, 4]
arrx2   = arr.map  { |n| n * 2 }
arrxx2  = arr.each { |n| n * 2 }

p arrx2   # => [2, 4, 6, 8]
p arrxx2  # => [1, 2, 3, 4]

map はブロックの戻り値を集めた新しい配列を返す

each は元の配列を返し、ブロック内の戻り値は破棄される


まとめ

  • .eachメソッドは要素を順番に取り出してブロックを実行する基本メソッド
  • 戻り値は常にレシーバーのまま
  • 要素変換が必要な場合は map と使い分ける

まとめてみて

  • 自分の勝手な思い込みとして、.eachメソッドって、(1..5)みたいな順列にしか使わないイメージが強くて、上手く利用できていない。
  • 例えば、テストの点数[40, 54, 70, 95]のような配列に使うケースの方が多いと思うから、この固定観念を打破したい。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?