【Ruby3.x】Proc::call()メソッドの使い方
callメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
callメソッドは、Procオブジェクトが保持するコードブロックの処理を実行するメソッドです。Procオブジェクトは、Rubyにおいて実行可能なコードブロックをオブジェクトとして扱うための仕組みであり、これによりブロックを変数に代入したり、メソッドの引数として渡したりすることが可能になります。callメソッドは、このProcオブジェクトに格納された処理を、任意のタイミングで呼び出して実行する役割を担います。
具体的には、Proc.new { |a, b| a + b } のように定義されたProcオブジェクトがある場合、proc_object.call(10, 20) のように引数を渡してcallメソッドを実行すると、Procオブジェクトが保持するブロック内の処理が実行されます。この例では、aに10が、bに20が渡され、a + b の結果である30がcallメソッドの戻り値として返されます。ブロックが引数を受け取るように定義されている場合は、callメソッドにも適切な数の引数を渡す必要があります。
callメソッドを使用することで、一度定義したブロックの処理を再利用したり、条件に応じて異なる処理を実行したりするなど、プログラムの柔軟性を高めることができます。これは、後から実行する処理を定義しておく場合や、異なる文脈で同じ処理を呼び出したい場合に特に有効です。
構文(syntax)
1my_proc = Proc.new { |arg1, arg2| puts "Received: #{arg1} and #{arg2}" } 2my_proc.call("Hello", 123)
引数(parameters)
*rest
- rest: Procオブジェクトに渡される任意の引数 (配列として受け取られます)
戻り値(return)
ブロックの戻り値
Procオブジェクトが保持しているブロックを実行し、そのブロックの実行結果を返します。