メソッドとブロックの戻り値
メソッドとブロックの戻り値についてのメモ。
yieldの前に変数を置いて、ブロックの戻り値を受け取ることができます。
ブロックの戻り値は、最後に評価された値です。
def my_method
a = yield
puts a + " received"
end
my_method do
"block message"
end # "block message received"と表示される
ブロック内でbreakを使うと、引数に指定した値がメソッドの戻り値となります。
def my_method
a = yield
puts a + " received"
end
my_method do
break "block message"
end # => "block message"
メソッド内でreturnを使い、戻り値を指定することができます。
def my_method
a = yield
if a == "block message"
return "same"
end
puts a + " received"
end
my_method do
"block message"
end # => "same"