ブロックはProc
ブロックとして渡されてくるのはProcオブジェクトです。proc { } や lambda{ }もProcオブジェクトです。ただ { } と書くとHashオブジェクトですね。
def p_block(&block) p block.class end p_block { } #=> Proc p(proc { }.class) #=> Proc p(lambda { }.class) #=> Proc p({ }.class) #=> Hash
ブロックとして渡されてくるのはProcオブジェクトです。proc { } や lambda{ }もProcオブジェクトです。ただ { } と書くとHashオブジェクトですね。
def p_block(&block) p block.class end p_block { } #=> Proc p(proc { }.class) #=> Proc p(lambda { }.class) #=> Proc p({ }.class) #=> Hash