【Ruby3.x】Range::step()メソッドの使い方
stepメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
stepメソッドは、Rangeオブジェクトから、指定された数値の間隔(ステップ)で要素を順に取得し、何らかの処理を実行するメソッドです。
このメソッドは、範囲の中から飛び飛びの値を取り出したい場合に非常に便利です。たとえば、「1から10までの範囲で、2つおきに処理を行う」といった状況で活用できます。
stepメソッドにブロックを渡した場合、範囲内の各要素が指定されたステップで順にブロックに渡され、そのブロックが実行されます。この際、メソッドは元のRangeオブジェクト自身を返します。
一方、ブロックを渡さずにstepメソッドを呼び出した場合、要素を順に取り出すためのEnumeratorオブジェクトを返します。これにより、必要な時に繰り返し処理を開始したり、mapやeach_with_indexといった他のEnumeratorメソッドと組み合わせて、柔軟なデータ処理を行ったりすることが可能です。
引数として渡すstepは、要素を取り出す間隔を数値で指定します。例えば、step(1)はすべての要素を、step(2)は1つ飛ばしで要素を取り出します。
このようにstepメソッドは、Rangeオブジェクトに対して規則的な間隔で繰り返し処理を行いたい場合に、コードを簡潔かつ効率的に記述するための重要な機能を提供します。
構文(syntax)
1(1..10).step(2) { |n| puts n }
引数(parameters)
step_size = 1
- step_size: 1 ごとに進める増分を指定する整数。デフォルトは 1 です。
戻り値(return)
Range または Enumerator
指定された範囲を一定のステップで進む新しいRangeオブジェクト、またはEnumeratorオブジェクトを返します。