LoginSignup
7
2

More than 3 years have passed since last update.

Ruby yieldとは

Last updated at Posted at 2019-07-23

yieldとは

ブロック付きメソッドでブロックを呼び出すことができます。

ブロックとは

do~end や {} で囲まれた処理のかたまり
以下の処理だと「puts i」の部分をブロック
「|i|」をブロックパラメータと呼ぶ

(1..10).each do |i|
  puts i
end

例1

ブロックを実行する

def hoge
  yield
end

hoge do
  puts "^o^"
end

=>^o^
def fuga
  yield
end

fuga{
  puts ";o;"
}

=>;o;

例2

yieldを複数回記述すると複数回実行される

def hogehoge
  yield
  yield
end

hogehoge do
  puts "hoge"
end

=>hoge
  hoge

例3

ブロックなしでyieldを利用した場合

def fugafuga
  yield
end

fugafuga

=>LocalJumpError (no block given (yield))
7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2