【Ruby3.x】Proc::<<()メソッドの使い方
<<メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
<<メソッドは、Procオブジェクトを合成するメソッドです。このメソッドは、二つのProcオブジェクト p1 と p2 がある場合、p1 << p2 のように記述することで、新しいProcオブジェクトを生成します。生成される新しいProcオブジェクトは、呼び出された際に、まず右側のProcオブジェクト p2 を実行し、その実行結果を引数として左側のProcオブジェクト p1 を実行するという一連の流れを定義します。
具体的には、p2 の処理結果が p1 の入力となる形で、二つの処理を連結した新しいProcオブジェクトが返されます。これにより、複数の処理ステップをまるで一本のパイプラインのように接続し、それらをまとめて一つの処理単位として扱えるようになります。データの変換や加工など、連続する操作を関数型プログラミングのようなスタイルで記述する際に非常に有用です。この機能は、コードのモジュール化を促進し、可読性や再利用性の向上に貢献します。生成されたProcオブジェクトは、実際に呼び出されるまで内部の処理は実行されません。
構文(syntax)
1add_one = Proc.new { |n| n + 1 } 2multiply_by_two = Proc.new { |n| n * 2 } 3 4# multiply_by_two を先に実行し、その結果を add_one に渡す新しい Proc を作成します。 5# 結果として、これは (n * 2) + 1 と同じ計算を行うProcになります。 6combined_proc = add_one << multiply_by_two 7 8puts combined_proc.call(5) # 出力: 11 (5 * 2 = 10, 10 + 1 = 11)
引数(parameters)
other
- other: 連結したい別のProcオブジェクト
戻り値(return)
Proc
Procオブジェクトにメソッドを連結して、新しいProcオブジェクトを生成して返します。