質問: 基本的な質問かもしれませんが、メソッドで戻り値ありの場合と戻り値なしの場合の使い分けは どのようにすれば良いのでしょうか? 現状メソッドで処理した値を他の部分で用いたい場合には戻り値ありの形で記述するという認識でしたが、 戻り値なしの形で記述しても、そのメソッド内部で他のメソッドを参照して引数を与えてあげれば、他の部分でも 用いることができるのではないかと思いました。 どなたかこのような場面で、戻り値ありの形でメソッドを記述するという具体例を示していただけると幸いです。 よろしくお願いい致します。
回答: C言語の場合は他の言語と違って、例外機構やオブジェクト指向がありませんので、関数外部とのやり取りはすべて引数を通じて行うしかありません。また、配列で返り値を返すなんて芸当も困難ですので、「返り値はエラーコード、他にやり取りするデータはポインタ経由で書き込み」というようなインターフェースになっていることもあります。 オブジェクト指向で、例外も備えたような言語の場合、エラーは例外で投げられるので、**呼び出した側で必要な情報**が「成功か失敗か」だけなら、値を返さなくても構いません(Javaのsetterなどは、ふつうそんな感じになります)。 ただ、jQueryに見られるように、メソッドチェーンを行うために「返すものがなくてもとりあえず`this`を返す」というような書き方も存在しています。あと、Rubyではメソッドの最後の行が自動で返り値になるので、返すつもりがなくても意図しないものが返り値となっていることがよくあります(たいていの場合、その値は捨てられるだけなのでどこにも影響しませんが)。