【Ruby3.x】proc()関数の使い方
proc関数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
proc関数は、与えられたブロックをProcオブジェクトとしてカプセル化し、返却する関数です。Rubyにおいて、ブロックとは、do...endや{...}で囲まれた、一連の処理をまとめたコードの断片を指します。通常、ブロックはメソッドに付随して一度だけ実行されるものですが、そのままでは変数に代入したり、他のメソッドの引数として渡したりするような、オブジェクトとしての操作を行うことができません。
このproc関数を利用することで、任意のブロックをProcクラスのインスタンス、つまりオブジェクトに変換できます。一度Procオブジェクトに変換されたブロックは、あたかも通常のオブジェクトのように扱うことが可能になります。具体的には、生成したProcオブジェクトを変数に格納したり、別のメソッドに引数として渡したり、あるいは必要になった時にcallメソッドを使って何度でも実行したりすることができます。これにより、処理のまとまりを柔軟に再利用したり、後から実行タイミングを制御したりする高度なプログラミングが可能になります。
Procオブジェクトは、それが定義された時点のスコープ(環境)を記憶するという特性も持っており、いわゆるクロージャとして機能します。これは、Procオブジェクトが実行される際に、定義時のローカル変数の状態などを参照できることを意味します。proc関数は、このような強力な機能を提供する、Rubyにおける重要なツールの一つです。
構文(syntax)
1proc { # ブロック内のコードがProcオブジェクトになります }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Proc
Procオブジェクトを生成し、返します。Procオブジェクトは、後で実行できるコードのまとまりです。