【Ruby3.x】Numeric::step()メソッドの使い方
stepメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
stepメソッドは、数値の範囲を指定された間隔で反復処理を実行するメソッドです。このメソッドは、呼び出し元の数値(レシーバー)を開始点とし、指定された終了値(limit)まで、一定の増減幅(step)で数値を変化させながら繰り返し処理を行います。
具体的には、limit引数で繰り返しを終了する値を指定します。step引数では、各反復で数値をどれだけ増減させるかを指定します。このstep引数を省略した場合、デフォルトで1ずつ増える動作となります。stepが正の値であれば数値は増加し、負の値であれば数値は減少します。繰り返しは、現在の数値がlimitに到達するか、それを超える直前まで続きます。
このメソッドにブロックを渡すと、各ステップで生成された数値がブロック引数として渡され、その数値に対する任意の処理を実行できます。ブロックが与えられた場合、メソッドはレシーバーである元の数値を返します。一方、ブロックが与えられなかった場合、stepメソッドは繰り返し処理を行うためのEnumeratorオブジェクトを返します。これにより、繰り返し処理を柔軟に制御することが可能です。
構文(syntax)
1numeric_object.step(limit_value, step_size) do |current_value| 2 # current_value を利用した処理 3end
引数(parameters)
limit, step = 1
- limit: 範囲の終端を指定する数値
- step = 1: 増加させる値を指定する数値。省略時は1になります。
戻り値(return)
レシーバ自身 (self) または Enumerator
stepメソッドは、指定された範囲を一定のステップで繰り返すためのイテレータです。メソッドの実行結果として、繰り返された各要素を順に生成します。もしブロックが与えられた場合、メソッドはレシーバ自身(self)を返します。ブロックが与えられなかった場合は、各要素を順に生成するEnumeratorオブジェクトを返します。