yield
さっき風呂に入りながら「たのしいRuby」読んでてようやく意味が分かった。
(あと回しにしてそのままだったんだけど・・・・)
メソッド定義の中のyieldは、 定義しているメソッドに与えられたブロックを実行します。
なるほど。勝手に「yieldはなんか値を返すもの」的に想像してたけど
全然違うじゃん (´・ω・`)ショボーン
class YieldTest def initialize @list = [0,1,2,3,4,5,6,7,8,9] end # # kurikaeshi メソッドに与えられたブロック # {|item| # puts item # } # を実行する。 # itemには yieldに与えた引数が設定される。 # ここでは、 # @listの要素の数だけ要素を引数にブロックを呼び出している。 # def kurikaeshi @list.each{|item| yield(item) } end end test = YieldTest.new test.kurikaeshi{|item| puts item }
- 結果 -
0 1 2 3 4 5 6 7 8 9
(`・ω・´) レベルアップ!