戻り値(返り値)とはどういう概念か掘り下げて考えた
自己紹介
はじめまして、はると申します。完全異業種からのエンジニア転職を目指して、スクールに通いながら学習をしています。
概要
プログラミングにおける「戻り値」について、Rubyの例を用いて説明します。
注意
私は前職が完全異業種であり、スクールに入って初めてプログラミングに触れました。
そんな自分が理解しづらかった部分を、同じように初めてプログラミングの概念に触れた人に向けてまとめました。
自分の復習も兼ねて、超超噛み砕いて書いているため、周りくどい書き方になっている箇所もあるかと思います🙇
戻り値とは
戻り値とは、言語に関わらずプログラミングに共通する概念です。
この記事全体を通して説明していきます。
噛み砕いて考える
私が初めて戻り値に出会ったときは、「 あらかじめ定義しているメソッド を 使って 結果が得られている」のに、どうして 「戻り」 値なの?🤔と疑問に思っていました。
それでは、例を用いて説明します。下記の例は別の言語ですが、どちらも
-
number + 2を実行するためのメソッド(関数) - numberに
2を代入した状態でメソッドを実行して出力する一行
が書かれています。
JavaScriptの場合
function addition(number) {
return number + 2;
}
console.log(addition(2)); /* =>4 */
Rubyの場合
def addition(number)
number + 2
end
puts addition(2) #=>4
JavaScriptでいう関数や、Rubyでいうメソッドは、定義しただけでは何も出力されません。
JavaScriptであればconsole.log、Rubyであればputsなどの、「出力して表示させる」ためのコードが必要になります。
順番を逆にして、出力された結果側をスタートにして考えてみると、(Rubyで説明します)
コード実行時に4が画面に表示(出力)されている。
↓
4を表示しているのは、puts addition(2)の部分のコード。
↓
addition(2)は引数2をつけてadditionメソッドを実行している。
↓
additionメソッドの中で、2 + 2が行われる(引数の2をnumberに代入して実行)
↓
メソッドで計算したその結果 = addition(2)ということになる。
↓
puts addition(2)がputs 4に置き換わる。(計算結果がaddition(2)に入っている。)
という流れになります。
「定義したadditionメソッドがあるからputs addition(2)で使えている」のではなく、
「puts addition(2)で呼び出されたadditionメソッドは、計算結果を返す」
という言い方ができます。
そのため、additionメソッドの結果の4が 「返り値」「戻り値」 と呼ばれます。
そう考えると、returnや、「戻り値」という言葉が使われていても納得できますね。
まとめ
-
実際に実行する部分(呼び出し元)の目線に立って、定義したメソッドを「呼び出す」、値が「返ってくる」という言い方をする。
-
どの目線から使われている言葉なのかや、コードが実行される順番を考えることが重要。
Discussion