yieldの意味がしばらくわからなかったけど、いろいろなサイトを見つけながら感覚を掴んだので、書く。
yield とは
yieldはあるメソッドに渡された手続きを実行するためのシンボル。
例えば
とあるメソッドを用意して、その中でyieldを宣言する。
def some_method(x)
yield x
end
このメソッドに対して、{|i| puts i}という手続きAを渡してやると、yieldが宣言された箇所で手続きAが実行される。
こんな感じ。
some_method('hoge'){|i| puts i}
すると実行結果は、以下のようになる。
=> hoge
some_methodは何もやらないメソッドなのに渡した手続きが実行されて、hogeが出力されます。