From: Jun'ya Shimoda Date: 2011-10-08T03:27:10+09:00 Subject: [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/