目指そうかなRubyist RSSフィード

 | 

2011-06-20

[meta] blockの基本  [meta] blockの基本 - 目指そうかなRubyist を含むブックマーク はてなブックマーク -  [meta] blockの基本 - 目指そうかなRubyist  [meta] blockの基本 - 目指そうかなRubyist のブックマークコメント

復習

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_given?

メソッドの内部からblockが渡されているか確認する方法。

def a_method
  return yield if block_given?
  'no block'
end

a_method { 'block' } # =>'block'
a_method # =>'no block'
 |