【Ruby3.x】Proc::[]()メソッドの使い方
[]メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
[]メソッドは、Procオブジェクトにカプセル化されたブロックを実行するメソッドです。
Procオブジェクトは、Rubyにおいてdo...endや{...}で囲まれたコードの塊である「ブロック」をオブジェクトとして扱うための仕組みです。これにより、プログラム中で定義した一連の処理(ブロック)を変数に代入したり、メソッドの引数として渡したり、あるいは後で任意のタイミングで呼び出して実行したりすることが可能になります。
Proc#[]メソッドは、このProcオブジェクトが保持している処理ロジックを実行するために使用されます。実行時に必要な引数がある場合は、[]の中にその値を渡して使用します。例えば、my_proc = Proc.new { |x, y| x + y } というProcオブジェクトがある場合、my_proc[10, 20]と記述することで、ブロック内の処理が実行され、その結果(この場合は30)が返されます。
この[]メソッドは、Proc#callメソッドのエイリアス(別名)であり、両者はまったく同じ機能を提供します。callメソッドを使う代わりに[]を使うことで、より関数呼び出しに近い簡潔な記法でProcオブジェクトを実行できるため、Rubyの柔軟なプログラミングにおいて頻繁に利用されます。このように、ブロックをオブジェクトとして扱って実行する機能は、プログラムの柔軟性と再利用性を高める上で非常に重要です。
構文(syntax)
1proc_instance = Proc.new { |arg1, arg2| arg1 + arg2 } 2proc_instance[value1, value2]
引数(parameters)
*rest
- rest: Proc.callメソッドに渡される引数
戻り値(return)
Object
Procオブジェクトに引数を渡して実行し、その実行結果を返します。