ホーム DoRuby [Ruby] yield ってどんなもの?

[Ruby] yield ってどんなもの?

この記事はアピリッツの技術ブログ「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 を記述した箇所で
ブロックに処理を引き渡して実行しているのがわかります。
上記はすごく単純な例になりますが、少しでも理解の助けになればと思います。

記事を共有

最近人気な記事