yieldを覚えたい
Rubyのyieldについて調べたことをメモ。
メソッドをブロックつきで呼び出すと
呼ばれたメソッド内のyieldの箇所でブロックの処理が実行される
そのとき、yieldの引数がブロックの引数に
ブロックからメソッドに値を返すこともできる
ブロック内で最後に評価された式の値がyieldの戻り値(?)として帰ってくる。
def find @ary = [1, 3, 5, 7, 9] for i in 0...@ary.size value = @ary[i] return value if yield(value) end return nil end puts find{|v| v*v > 30 } #=> 7