自己紹介
はじめまして、はると申します。完全異業種からのエンジニア転職を目指して、スクールに通いながら学習をしています。
概要
プログラミングにおける「戻り値」について、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
や、「戻り値」という言葉が使われていても納得できますね。
自分はRailsでNo Method Error(呼び出そうとしているメソッドが存在しません)などに沢山遭遇して、やっとこの呼び出される順番のイメージがつくようになりました。
まとめ
-
実際に実行する部分(呼び出し元)の目線に立って、定義したメソッドを「呼び出す」、値が「返ってくる」という言い方をする。
-
どの目線から使われている言葉なのかや、コードが実行される順番を考えることが重要。