[#48430] WEBrick — 牛坂 博則 <ushizaka.hironori@...>
|牛坂ともうします。
8 messages
2011/10/03
[#48443] 関数の戻り値について — "Jun'ya Shimoda" <jun-shimo@...>
下田です。
7 messages
2011/10/07
[#48450] 1.8.7と1.9.2の挙動の違いについて — "Jun'ya Shimoda" <jun-shimo@...>
下田です。
13 messages
2011/10/09
[#48454] Re: 1.8.7と1.9.2の挙動の違いについて
— dezawa <dezawa@...>
2011/10/10
出沢です
[#48467] net/https のproxy経由接続シーケンスについて — KASUGA Toru (春日 玄) <kasuga.toru@...>
春日と申します。
7 messages
2011/10/14
[#48468] Re: net/https のproxy経由接続シーケンスについて
— 名島太樹 <h.najima@...>
2011/10/14
名島と申します。
[#48475] Re: net/https のproxy経由接続シーケンスについて
— KASUGA Toru (春日 玄) <kasuga.toru@...>
2011/10/16
名島様
[#48484] Windows で $0 へ代入すると刈り取られる — "5.5" <5.5@...>
5.5 です。
10 messages
2011/10/20
[#48485] Re: Windows で $0 へ代入すると刈り取られる
— Nobuyoshi Nakada <nobu@...>
2011/10/21
なかだです。
[#48486] Re: Windows で $0 へ代入すると刈り取られる
— "5.5" <5.5@...>
2011/10/21
5.5 です。
[#48496] IE9/Windows7(64bit)だとformをsubmitできない — 大縄亮 <onawa@...>
44Gv44GY44KB44G+44GX44Gm44CC5qCq5byP5Lya56S+44Oe44Kk44Os44O844K444OG44Kv44OO
7 messages
2011/10/25
[ruby-list:48445] Re: 関数の戻り値について
From:
vzx01036@...
Date:
2011-10-07 17:21:19 UTC
List:
ruby-list #48445
下田さんの書かれたケース3を
return splitprm.each {|c| result += c.to_i}
と書き換えると、何が発生しているか、お分かりになるのではないでしょうか。
あくまでも最後に評価されているのは、「splitprm」であって、期待している「result
」ではないわけです。
少し乱暴な言い方をすると、ケース3は、
splitprm(配列)の中身をごちゃごちゃやりましたが、最終的には、splitprm の値を
返します
との記述になっています。
個人的には、何を返事するかは、オブジェクト指向として大切なことだと思っているの
で、「return」で返事の内容を明示することをお勧めしたいのですが……。
----- Original Message -----
>Date: Sat, 8 Oct 2011 01:30:33 +0900
>From: "Jun'ya Shimoda" <jun-shimo@nifty.com>
>Subject: [ruby-list:48443] 関数の戻り値について
>To: ruby-list@ruby-lang.org (ruby mailing list)
>
>
>下田です。
>
>初心者プログラマーをRuby信者にしてしまおうと色々教えてたら
>変な挙動なのではないかと思われる事があったので報告します。
>
>理解不足な点はご教示いただけると幸いです。
>
>
>ケース.1
>def calc(prm)
> prm.split(//)
>end
>
>ケース.2
>def calc(prm)
> prm.split(//)
> result = 0
>end
>
>ケース.3
>def calc(prm)
> splitprm = prm.split(//)
> result = 0
> splitprm.each do |c|
> result += c.to_i
> end
>end
>
>ケース.4
>def calc(prm)
> splitprm = prm.split(//)
> result = 0
> splitprm.each do |c|
> result += c.to_i
> end
> result
>end
>
>
>以上の4ケースを
>printf (calc ARGV[0]).to_s + "\n"
>で呼び出しました。
>
>ruby1.8.7(2008-08-11 patchglevel 72) [i386-cygwin]
>と
>ruby1.9.2p290(2011-07-09 revision 32553) [x86_64-linux]
>で試してみたところ
>
>
>ケース.1
>1234(1.8.7)
>["1", "2", "3", "4"](1.9.2)
>
>ケース.2
>0
>
>ケース.3
>1234(1.8.7)
>["1", "2", "3", "4"](1.9.2)
>
>ケース.4
>10
>
>
>となりました。
>私がわからないのはケース.3なのですが
>Rubyは最後に評価された値を返すはずですから
>10を期待していましたが
>結果はsplitされた文字の配列でした。
>また、ケース.2ではresult = 0が評価されていると言う結果なのに
>ケース.3ではその行すらも評価されないというのが2重にわかりませんでした。
>
>これはバグなのでしょうか?仕様なのでしょうか?
>
>以上よろしくお願いします。
>
>
>--
> 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/
>
>
とみくらまさや(vzx01036@nifty.com)