わからないまま進んだ、戻り値とnil。
戻り値とnilとは一体何?
参考書やWEBサイトでちらほら見かける戻り値
やnil
。わからないままだと気持ちが悪いのでまとめてみました。
戻り値とは
最後の式を実行した結果。全てのメソッドに戻り値は存在する!
nilとは
「全く何もない」ことを表すRubyの「値」
文字で表してもよくわかりませんが、以下の画像をまず見て下さい。
今の今まで二段に別れて結果が出力されている事の意味を理解していませんでした。
まず、赤い汚い文字(100均のペン)で「戻り値」と書きました!「10」と「nil」という結果が出ています!上にも書きましたが、最後の式を実行した結果が帰ってきています!「10」はわかりますが、なぜputs ' a'
の戻り値が「nil」なのか?!
答えがRubyの公式サイトにあり、
「puts」は「nil」を返すそうです。「a」はただ出力されただけのもの。素人が深入りしすぎて推測するより、そういう仕組みになっているんだと思った方が良さそう。 因みにメソッドで見てみると
①def calc(a,b) a + b end calc(5,5) => 10 ②def output puts 'a' end output a => nil
メソッド①では最後の式を実行した結果の「10」が結果で、メソッド②では上でもお話ししている通り「a」を出力しただけで、戻る値が元々決められている「nil」が返ります!
ただ、戻り値をreturn
で指定できる
def get_value 'あ' return 'い' 'う' end return "い"
まだまだわからない事は多そうです。何かあればご指摘いただけると幸いです。