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
が出力されます。