2011年10月 8日

[ruby-list:48446] Re: 関数の戻り値について

信岡様
早速 and 毎度アドバイスして頂きありがとうございます。

vzx01036様もお返事頂きありがとうございます。


> 以下のように書き換えるとわかりやすいのではないでしょうか。
>

> ケース 3' (ケース 3 とほぼ等価)
> def calc( prm )
> splitprm = prm.split( // )
> result = 0
> b = Proc.new{ |c| result += c.to_i }
> splitprm.each( &b )
> end
なるほど!
PascalとCの時の悪い癖で
ループするものは制御構文だから
評価されないものだと思い込んでました。
eachもメソッドなのですね。

ちなみに
for c in [splitprm]
でも同じ結果になったのですが
for文はObjectクラスのメソッドと解釈しました。


>個人的には、何を返事するかは、オブジェクト指向として大切なことだと思っ
ているの

>で、「return」で返事の内容を明示することをお勧めしたいのですが……。

確かに最後に何を返すか明示する方がPascal出身の私も分かりやすいです。
でも、るびきちさんの「Ruby逆引きハンドブック」によると
「最後の式にわざわざ「return」を付けるのは、Ruby的に恰好悪い」
そうなので、頑張ってreturnを回避してたらこんな目に会ってしまいました。
どうしたものやら。


> そんなわけなんでバグではないですね。
了解です。

--
A A Name : 下田 純也 (Jun'ya Shimoda)
(o'.'o) _/ e-mail : jun-shimo@nifty.com
(> ~ <)/ Blog : http://d.hatena.ne.jp/JironBach/
Twitter: http://twitter.com/JironBach/

投稿者 xml-rpc : 2011年10月 8日 03:27
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/106831
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。