返り値(カエリネ)とは | 意味や読み方など丁寧でわかりやすい用語解説

返り値(カエリネ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

返り値 (カリネシ)

英語表記

return value (リターンバリュー)

用語解説

システムエンジニアを目指す上で、プログラミングの基本的な概念を理解することは非常に重要である。その中でも「返り値」は、プログラムがどのように情報をやり取りし、処理を進めていくかを理解するために欠かせない要素の一つである。

返り値とは、関数やメソッド(以下、総称して「関数」と呼ぶ)がその処理を完了した際に、呼び出し元に対して返すデータのことである。プログラムは、特定の目的のために小さな部品(関数)に分割されて構成されることが多い。これらの関数は、与えられた入力(引数)に基づいて何らかの処理を実行し、その処理の結果を呼び出し元に報告する必要がある場合がある。この報告される結果こそが返り値である。

例えば、数学で「y = f(x)」という式があるように、関数fにxという値を与えると、何らかの計算が行われてyという結果が得られる。プログラミングにおける返り値もこれと似た概念であり、関数にデータを与えて処理を依頼し、その処理によって生成された結果を返してもらう、という一連の流れの中で重要な役割を果たす。この返り値を受け取ることで、呼び出し元のプログラムは次の処理を適切に進めることができるようになる。

返り値がなぜ必要とされるのか、その目的は多岐にわたる。最も基本的な目的は、関数が実行した処理の結果を呼び出し元に伝えることである。例えば、二つの数値を足し合わせる関数があるとして、その関数が計算を終えた後に足し算の結果を返さなければ、呼び出し元はその結果を知ることができない。結果を知らなければ、その後のプログラムの流れを構築することは不可能である。

具体的な例をいくつか考えてみよう。 ある関数が与えられた文字列の長さを計算するとする。この関数に「Hello」という文字列を渡すと、その長さである「5」という数値を返り値として返す。呼び出し元は、この「5」という返り値を受け取り、それを画面に表示したり、他の計算に利用したりできる。

また、ユーザーが入力したパスワードが、設定されたセキュリティ要件を満たしているかを確認する関数を考える。この関数はパスワードを受け取り、例えば「8文字以上か」「数字と記号が含まれているか」といったチェックを行う。そして、全ての要件を満たしていれば「true」(真)を、一つでも満たしていなければ「false」(偽)を返り値として返すことができる。呼び出し元はこの真偽値に基づいて、「パスワードが有効です」というメッセージを表示したり、再入力を促したりする判断を下すことが可能になる。

さらに複雑な例として、データベースから特定のユーザー情報を取得する関数を考えてみよう。この関数にユーザーIDを渡すと、データベースを検索し、もしそのIDを持つユーザーが見つかれば、そのユーザーの氏名、メールアドレス、住所といった情報を含む「ユーザーオブジェクト」を返り値として返す。もしユーザーが見つからなければ、「null」(何もデータがないことを示す特別な値)などを返すように設計することもできる。このように、返り値は単純な数値や真偽値だけでなく、より複雑なデータ構造やオブジェクトそのものを返すことも一般的である。

返り値には「型」が存在する。プログラミング言語では、扱うデータの種類に応じて「整数型(int)」「浮動小数点数型(float/double)」「文字列型(string)」「真偽値型(boolean)」といった様々なデータ型が定義されている。関数が何を返り値として返すかは、その関数の定義時に明確に指定される。例えば、「int型の値を返す関数」「string型の値を返す関数」といった具合である。呼び出し元は、その関数がどのような型の値を返すかを事前に知っているため、適切な変数を準備してその返り値を受け取り、以降の処理に活用できる。この型の情報は、プログラムの安全性を高め、予期せぬエラーを防ぐ上で非常に重要な役割を果たす。例えば、整数を返す関数が誤って文字列を返してしまうと、それを整数として扱おうとした呼び出し元でエラーが発生する可能性があるが、型指定があればコンパイル時や実行時にその不一致が検出されやすくなる。

一方で、全ての関数が返り値を持つわけではない。一部の関数は、特定の処理を実行すること自体が目的であり、その結果として特別なデータを呼び出し元に返す必要がない場合がある。例えば、画面にメッセージを表示するだけの関数や、ファイルのデータを保存するだけの関数などである。このような関数は、プログラミング言語によっては「void型」(C/C++/Javaなど)や「None型」(Python)、「undefined型」(JavaScript)といった特別な型を指定し、返り値がないことを明示する。これらの関数は、返り値の代わりに、ファイルへの書き込み、データベースの更新、画面表示といった「副作用」(side effect)と呼ばれる処理を実行することで目的を達成する。

エラーハンドリングにおいても、返り値は重要な役割を担う。関数が実行中に何らかの問題に遭遇し、正常に処理を完了できなかった場合、そのエラーの状態を呼び出し元に伝える必要がある。これにはいくつかの方法があるが、返り値として「エラーコード」(特定の数値をエラーの種類に対応させる)や「エラーオブジェクト」を返すことが一般的である。呼び出し元は、返り値が正常な結果なのか、それともエラーを示す値なのかを判断し、エラーであれば適切なリカバリー処理(例えば、ユーザーへのエラーメッセージ表示、ログへの記録、再試行など)を実行できる。

プログラミングにおいて、機能ごとに部品化された関数は、互いに協力し合って一つの大きなシステムを構築する。この連携において、返り値は情報の「渡し役」として中心的な役割を果たす。ある関数が計算した結果を別の関数が受け取り、さらに加工して次の関数に渡す、といった情報の流れは、返り値によって実現される。これにより、プログラムはモジュール化され、それぞれの関数が独立してテストしやすくなり、全体としての保守性や再利用性が向上する。返り値は、関数がブラックボックスとして機能し、内部の詳細を知らなくてもその機能を呼び出し元が利用できる、という抽象化の概念を支える重要な要素でもある。

返り値の理解は、単にプログラミングの文法を覚えるだけでなく、プログラムがどのようにデータを処理し、機能が連携していくかを深く理解するために不可欠な概念である。初心者としては、自分で関数を作成する際や、既存のライブラリやフレームワークの関数を利用する際に、その関数がどのような引数を受け取り、どのような返り値を返すのかを常に意識することが、プログラムの設計やデバッグ能力を高める上で非常に役立つだろう。