トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2005-1-4

Rubyのメソッドの返り値

C言語やJavaと違ってRubyでは、メソッドの返り値を宣言しない。
さすがに一つのメソッドの中で条件によってさまざまな型(オブジェクトか)を
返り値にすることは少ないが、いまかいていたプログラムでは、
あるクラスを継承したいくつかのクラスにおいてそれぞれオーバライドしているメソッドが
さまざまなオブジェクトを返してしまうような設計になっていた。
もちろん設計時には気を使ってメソッドを利用する側で注意していたのだが、
次第にこんがらがったのか、バグの温床に。
なるべく、こんな設計はしないようにしないと。
あと、忘れがちなのが暗黙の返り値。
Rubyなれしてない私は、returnで明示的に値を返すことが多いのだが、
Rubyでは、最後に評価した式の値が返り値になる。
うっかりnilがかえっているのに気づかないのも、後で困ったり。
きをつけよ〜