block中級

Ruby でブロックを受け取るメソッドを定義するとき、ブロックを明示的に受け取る引数の書き方はどれですか?

  • def foo(*block)
  • def foo(&block)
  • def foo(block:)
  • def foo([block])

解説

`&` プレフィックスを付けた引数はブロックを Proc オブジェクトとして受け取ります。`yield` で暗黙的に呼ぶ方法もありますが、明示的に受け取る場合は `&block` を使います。