yieldとは
ブロックを引数として受け取り、受け取ったブロックを実行するメソッドとなります。
yieldの使い方
以下の通りに使用します。
def test
yield
end
test{puts "テストです"}
実行結果
テストです
testにブロック引数{puts "テストです"}を渡し、
そのブロックをyieldメソッドで実行してます。
引数とブロック引数を同時に渡す方法
def foo(a,b,c)
i = 0
while(i < a)
yield a + b + c + i
i += 1
end
end
foo(7,5,3){|x| puts x}
実行結果
15
16
17
18
19
20
21
ブロック引数にブロックパラメーターと呼ばれる変数|x|を記載することで、
その変数に毎回値が渡されることになります。
while文でyieldを7回繰り返すことで、その都度出力される値が変更されます。