ブロック応用レベル

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

  • 1def foo(*block)
  • 2def foo(&block)
  • 3def foo(block:)
  • 4def foo([block])

解説

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

問題一覧へ戻る