技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

Rubyではメソッド内で最後に評価された値が返り値になる

Rubyではメソッド内で最後に評価された値が返り値になる

Rubyでは、returnをつかって明示的に指定された値や、メソッド内で最後に評価された値がメソッドの返り値になります。 つまりこのコードと

class User
  def name
    return "ホゲー"
  end
end

このコードの返り値は同じになります

class User
  def name
     "ホゲー"
  end
end

returnはメソッドを途中で抜ける時に便利

def say(my_name)
  return 'あなたの名前を入力してください' if my_name.nil?

  if my_name == 'hoge'
    'こんにちはhogeさん'
  else
    '誰あなた?'
  end
end

say(nil) => あなたの名前を入力してください