Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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オブジェクトが保持するブロック内の処理が実行されます。この例では、a10が、b20が渡され、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オブジェクトが保持しているブロックを実行し、そのブロックの実行結果を返します。

関連コンテンツ