[Ruby] yield を理解するためのスニペット
noteでのアウトプットの試み。
Ruby における yield がよくわからなかった時に書いた過去記事↓のダイジェスト。
Ruby の yield って結局なんなの? - YNote
http://d.hatena.ne.jp/yoshidaa/20090511/1241967137
下記のメソッド hogehoge と foofoo は同じはたらきをする。
def hogehoge( x, &proc ) # &proc
proc.call if block_given? # proc.call
return x + 2
end
def foofoo( x ) # &proc はない!
yield if block_given? # proc.call が yield に!
return x + 2
end
p hogehoge( 3 )
# => 5
p hogehoge( 5 ){ p "foo" }
# => "foo"
# 7
p foofoo( 3 )
# => 5
p foofoo( 5 ){ p "foo" }
# => "foo"
# 7