読者です 読者をやめる 読者になる 読者になる

ばくのエンジニア日誌

技術的なメモなどを書いていきます。

メソッドとブロックの戻り値

ruby
このブログ(ばくのエンジニア日誌)はBAKUNOTEに移転しました。

メソッドとブロックの戻り値についてのメモ。

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"