rubyの基礎(10)メソッドの戻り値

rubyのメソッドの中では、戻り値を返すreturn文はなくてもいいのです。

def fact(n)
  if n == 0
    1
  else
    n * fact(n-1)
  end
end

上のメソッドは再帰呼び出しで階乗の計算を行います。return文を省略して最後に評価された値が戻り値として返ります。

評価される値がないときは戻り値としてnilが返ります。

そうは言ってもreturn文がないのは気持ち悪いと言う人は、return文を書いて出口を明示してもいいのですが、return文ありきのプログラミングでは、メソッド(関数)の出口を、returnさえ書けばどこからでも呼び出し元に戻れると考えてreturn文の嵐にしてしまうと、分かりにくく美しくないコードになりがちです。それに「return 変数」のステップは実際演算をすることのない無駄な行なのです。(単に呼び出し元に値を返すことだけをしている)
rubyを学ぶのを機にメソッドからreturnを取り除きましょう。


この記事が気に入ったらサポートをしてみませんか?