インドカレーファンクラブ

パソコン、カメラ

【Ruby】メソッドにおけるreturnの使いどころ

僕はC#を書く人間なので当然返り値のあるメソッドではreturnは必ず書くし、そうしないとVisualStudioさんに怒られるそのやりとりも愛おしく思っている

が、Rubyのメソッドではreturnは必ずしも必要ではない

こんな感じにhogeメソッドの中で最後にresを書いておくだけで暗黙的にそれが返り値になる

def hoge
  res = ''
  2.times{ res << 'hey!'}
  res
end

f = hoge
p f # "hey!hey!"

怖~~と思うんだけどコレは慣れとのことなので、はやく慣れたい

※ついでにresを最後に書かないと2.times...の実行結果、つまり2が返り値になってしまってこれまた困る

一方で所謂早期returnというかガード節を使う時は明示的にreturnを使うみたい

def hoge(num)
  if num < 0
    return '-'
  end
  
  # ...
  # 複数行に渡るいろんな処理
  # ...

  res
end