block中級
Ruby でブロックを受け取るメソッドを定義するとき、ブロックを明示的に受け取る引数の書き方はどれですか?
- def foo(*block)
- def foo(&block)
- def foo(block:)
- def foo([block])
解説
`&` プレフィックスを付けた引数はブロックを Proc オブジェクトとして受け取ります。`yield` で暗黙的に呼ぶ方法もありますが、明示的に受け取る場合は `&block` を使います。
Ruby でブロックを受け取るメソッドを定義するとき、ブロックを明示的に受け取る引数の書き方はどれですか?
解説
`&` プレフィックスを付けた引数はブロックを Proc オブジェクトとして受け取ります。`yield` で暗黙的に呼ぶ方法もありますが、明示的に受け取る場合は `&block` を使います。