|
|
||
復習
blockは中括弧か、do endで定義
ブロックを定義できるのは、メソッドを呼び出す時だけ。
ブロックはメソッドにそのままわ達され、メソッド側でyieldを使ってブロックをコールバックする。
def a_method(a, b) a + yield(a, b) end a_method(1, 2) {|x, y| (x + y) * 3} # => 10
メソッドの内部からblockが渡されているか確認する方法。
def a_method return yield if block_given? 'no block' end a_method { 'block' } # =>'block' a_method # =>'no block'