2017-10-05 17 views
0

二つの例:Rubyのブロック呼び出し

def invoke_block(&block) 
    block.call 
end 

def invoke_block(&block) 
    instance_eval(&block) 
end 

なぜinstance_eval&を必要としていますか?

+0

ブロックを通過していません。 – sawa

答えて

4

なぜinstance_eval&を必要としていますか?

instance_evalは、文字列またはブロックを受け入れるためです。 Procオブジェクト(この場合はblockという名前です)を受け入れません。したがって、演算子&を使用して、procをブロックに「アンパック」します。

関連する問題