Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Range::each()メソッドの使い方

eachメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

eachメソッドは、RubyのRangeクラスに属し、Rangeオブジェクトが定義する範囲内の各要素に対して、特定の処理を繰り返し実行するメソッドです。このメソッドを呼び出すと、レシーバであるRangeオブジェクトが保持する開始値から終了値までの要素が、順序に従って一つずつ取り出されます。そして、取り出された各要素は、eachメソッドに渡されたブロック(do ... end{ ... }で囲まれたコードのまとまり)の引数として渡され、ブロック内の処理が実行されます。

例えば、1..5というRangeオブジェクトに対してeachメソッドを使用すると、まず1がブロックに渡されて処理が実行され、次に2が渡されて処理が実行され、といった具合に5まで順番に処理が繰り返されます。この一連の繰り返し処理が全ての要素に対して完了した後、eachメソッドは最終的に、レシーバである元のRangeオブジェクト自身を戻り値として返します。

この機能は、数値の連番や文字の範囲など、連続する値に対して一律の操作を行いたい場合に非常に役立ちます。例えば、特定の範囲の数値を画面に表示したり、各数値に対して計算を実行したりするような場面で頻繁に利用され、コードの可読性を高め、簡潔に繰り返し処理を記述することを可能にします。システムエンジニアを目指す上で、このような繰り返し処理の基本となるメソッドの理解は重要です。

構文(syntax)

1(start..end).each do |element|
2  # element を使った処理
3end

引数(parameters)

引数なし

引数はありません

戻り値(return)

self または Enumerator

Rangeクラスのeachメソッドは、Rangeオブジェクト自体を返します。ただし、ブロックが渡されなかった場合はEnumeratorオブジェクトが返され、これにより後からブロックを適用できるようになります。

関連コンテンツ