【Ruby3.x】Enumerator::ArithmeticSequence::step()メソッドの使い方
stepメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
stepメソッドは、RubyのEnumerator::ArithmeticSequenceクラスに属し、算術数列(等差数列)の要素を処理するために利用されるメソッドです。
Enumerator::ArithmeticSequenceクラスは、指定された開始値から終了値までを、一定の間隔(ステップ)で増加または減少する数値の並び、すなわち算術数列を表すオブジェクトを生成します。stepメソッドは、この算術数列の各要素を順番に繰り返し処理する役割を持ちます。
具体的には、stepメソッドにブロックを渡すと、数列の各要素が一つずつそのブロックに引き渡され、ブロック内で定義された処理が実行されます。これにより、例えば「1から10までの間で2つおきの数に対して何か処理を行う」といった、規則的な間隔を持つ数値に対する反復処理を簡潔に記述できます。
一方、ブロックが指定されなかった場合、stepメソッドは自身、つまり元のEnumerator::ArithmeticSequenceオブジェクトをそのまま返します。この挙動により、他のメソッドと連結してさらに複雑な処理を記述する、いわゆるメソッドチェーンの利用が可能になります。
このstepメソッドは、Enumerator::ArithmeticSequenceオブジェクトのeachメソッドと同じ機能を提供しており、事実上eachメソッドの別名として動作します。したがって、等差数列の要素を順に辿る際には、stepメソッドもeachメソッドも同じ目的で使用することができます。
stepメソッドは、数値の規則的なシーケンスに対する反復処理を、Rubyの慣用的な書き方で簡潔かつ明確に記述するための便利な手段を提供します。
構文(syntax)
11.step(10, 2) do |n| 2 puts n 3end
引数(parameters)
引数なし
引数はありません
戻り値(return)
Enumerator または Enumerator::ArithmeticSequence
このメソッドは、指定されたステップ(増分)で要素を生成する新しい Enumerator オブジェクトを返します。この Enumerator は、場合によっては Enumerator::ArithmeticSequence のサブクラスとして返されることもあります。