関数を学んでいると必ず出てくるのが、「戻り値(もどりち)」の存在です。
参考書やサイトによっては「返り値(かえりち)」と書いてあることもありますが、どちらも同じ意味になります。
戻り値を一言で説明すると、「関数が返す値」です。そのままですね。
もう少し詳しく説明するならば、「関数を実行したときに出力される値」のことをいいます。
ただ、ここで1つ注意してほしいのは、戻り値の扱いは覚えるプログラミング言語によっても多少違うということです。
そこで今回は、言語による違いを比較しながら理解できるよう、「C言語」と「Ruby言語」を例に紹介していきます。
関数の理解に不安な方は、さきにこちらの記事を読むと理解しやすいと思います。
言語によって、戻り値や関数の書き方に違いがあるよ!
関数の戻り値(返り値)とは
まず、関数の戻り値(返り値)について確認しておきましょう。
これは関数を「自動販売機」に例えるとわかりやすいです。
自動販売機は、「お金」を入れると「ジュース」が出てきますよね。
関数もこれと同じで、「引数」を渡すと「戻り値」が出力されるのです。
つまり、戻り値とは「関数が実行されたときに返ってくる値」のことをいいます。
「返す」とか「戻る」という表現に違和感を感じるかたも多いと思います。
C言語の関数の戻り値(return)
int calculation(int price) {
int total_price = price + 10;
return total_price;
}
calculation(100);
戻り値は、どのプラグラミング言語でも「return(リターン)」のあとに続けて書くのが基本になります。
つまり、戻り値にしたい「値」や「式」の前に、「return」という文字を書けば戻り値となるのです。
この関数での戻り値は変数「total_price」の中の値、つまり「10」という値が戻り値となります。
ここまでは、なんとなく理解できたのではないでしょうか?
ただ、C言語はここから少し難しくなってきます。
まず、C言語では「関数の戻り値の型を最初に記述する」というルールがあります。
さきほどの関数の戻り値は「110」など、整数の値になるため「int型(整数型)」となり、関数定義の最初に「int」と書く必要があります。
そんな方も安心してください。もともとC言語は、初心者には少し難しいプログラミング言語です。
このあと説明する「Ruby」の戻り値の例を見て理解できれば、とりあえずOK。最悪、C言語は忘れてもいいです。
C言語は初心者向けじゃないけど、基本言語だから紹介したよ!
Rubyの関数の戻り値(return)
では、さきほどのC言語と見比べならがRubyの関数の戻り値を確認しましょう。
def calculation(price) {
total_price = price + 10
return total_price;
}
calculation(100)
基本的にはC言語と同じで、戻り値にしたい値や式の前に「return」をつけます
ただ、1つ違うのはC言語のように「戻り値の型を定義しなくていい」ということです。
その代わり、関数定義の最初に「def」と書く必要があります。
文字通り「関数を定義する!」と宣言していると思ってもらえればいいです。
そして実は、Rubyで関数を書く場合は、もっともシンプルに記述することができます。
def calculation(price) {
price + 10
}
calculation(100)
Rubyではreturnを省略できます!
Rubyの場合、関数の最後にある処理結果を自動的にreturnします。
戻り値と引数の違いは?
戻り値と似たものに、「引数(ひきすう)」というものがあります。
引数は「関数に渡す値」のことです。
さきほどの自動販売機を例えにすると、関数が「自動販売機」で引数が「お金」ですね。
引数を関数に渡すことで、関数の処理結果を変えられるメリットがあります。
簡単にいうと「入れたお金によって出てくるジュースが変わる」ってことだね!
まとめ
- 戻り値(もどりち)とは、関数が返す「値」のこと
- 戻り値と返り値は同じ意味
- 戻り値の扱いはプログラミング言語によって多少違う
- Rubyはシンプルに書けて「return」も省略できる
今回は、「C」と「Ruby」で関数の戻り値を比較してみました。
プログラミング言語の違いを知るキッカケにもなったかと思います。
C言語は古くから使われているプログラミング言語であり、コンピューターの知識も多少必要となってくるため、初心者には少し難しい言語かもしれません。
一方Rubyはシンプルに書けることを目指している言語なので、よりシンプルにプログラミングをすることができます。