【Ruby3.x】Proc::yield()メソッドの使い方
yieldメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
yieldメソッドは、Procクラスのインスタンスが保持しているコードブロックを実行するメソッドです。Procオブジェクトは、後から実行したいコードブロックをオブジェクトとしてカプセル化する際に使用されます。このyieldメソッドを呼び出すことで、そのProcオブジェクトが作成されたときに渡されたブロックが実行されます。
yieldメソッドには、実行したいブロックに渡すための引数を指定することができます。これらの引数は、ブロックのパラメータとして渡され、ブロック内で利用することが可能です。ブロックが実行を終えると、そのブロックの最後の式の評価結果がyieldメソッドの戻り値となります。
例えば、特定の処理を定義しておき、後で異なる引数を与えながら何度も実行したい場合や、コールバックとして処理を渡したい場合にProcオブジェクトが役立ちます。yieldメソッドは、このようにカプセル化されたブロックを実行するための標準的な方法の一つです。Rubyのバージョン3においても、この振る舞いは一貫しています。
構文(syntax)
1my_proc = Proc.new { |*args| args.sum } 2result = my_proc.yield(1, 2, 3) 3# result は 6
引数(parameters)
*rest
- rest: 任意の数の引数。yield文によって呼び出し元に渡されます。
戻り値(return)
Object
Procオブジェクトがブロックを呼び出した際に、ブロックから返された値、またはブロックの最後に評価された式の値が返されます。