[#48450] 1.8.7と1.9.2の挙動の違いについて — "Jun'ya Shimoda" <jun-shimo@...>

下田です。

13 messages 2011/10/09

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

From: "NARUSE, Yui" <naruse@...>
Date: 2011-10-07 19:19:31 UTC
List: ruby-list #48448
(2011/10/08 3:27), Jun'ya Shimoda wrote:
>> 個人的には、何を返事するかは、オブジェクト指向として大切なことだと思っているの
>> で、「return」で返事の内容を明示することをお勧めしたいのですが……。
> 
> 確かに最後に何を返すか明示する方がPascal出身の私も分かりやすいです。
> でも、るびきちさんの「Ruby逆引きハンドブック」によると
> 「最後の式にわざわざ「return」を付けるのは、Ruby的に恰好悪い」
> そうなので、頑張ってreturnを回避してたらこんな目に会ってしまいました。
> どうしたものやら。

基本的に Ruby は書かなくてもいい物は書かない、ですからね。
「最後の式の値が返る」「全てが式」というルールが染みついていれば、
return は蛇足にしかならないわけです。

言い換えると、蛇足を増やすと本質が埋もれやすくなるので避ける、ですかね。
「記述が多い方がわかりやすい」派とは立場を異にしていると。

なお、わたしだったらこう書くかな

def calc(str)
 str.split(//).inject(0){|sum, item| sum += item.to_i}
end

* Enumerable#inject
http://doc.ruby-lang.org/ja/1.9.2/method/Enumerable/i/inject.html

-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread