この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
ご無沙汰してます。トマトです。
自分自身もよくわからなかった、ruby の yield について
理解がてら説明してみます。
yield とは?
一言で行ってしまうと、 ブロックに処理を引き渡してくれる役割をもっています。
文字で書くと非常にわかりづらいので、
実際に動作を見てみましょう。。。
  def test
     puts "#################"
     puts "yield実行前" 
     puts "#################"
     yield(1,2)
     puts "#################"
     puts "yield実行後"
     puts "#################"
  end
 
   test do |x,y|
    my_sum = x+y
    puts "#{x}+#{y}=#{my_sum}"
  end 
こんな感じのコードを書いたとすると、 実行結果は下記の通りになります。
  #################
 yield実行前
 #################
 1+2=3
 #################
 yield実行後
 #################
実行結果を見る通り、yield を記述した箇所で
ブロックに処理を引き渡して実行しているのがわかります。
上記はすごく単純な例になりますが、少しでも理解の助けになればと思います。
            

の可能性とは-1-218x150.png)





















の可能性とは-1-100x70.png)











