[#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:48444] Re: 関数の戻り値について
From:
"Y. Nobuoka" <nobuoka@...>
Date:
2011-10-07 17:18:18 UTC
List:
ruby-list #48444
信岡です。
> 私がわからないのはケース.3なのですが
> Rubyは最後に評価された値を返すはずですから
> 10を期待していましたが
> 結果はsplitされた文字の配列でした。
> また、ケース.2ではresult = 0が評価されていると言う結果なのに
> ケース.3ではその行すらも評価されないというのが2重にわかりませんでした。
文面から察するに、ケース 3 の calc メソッドの中で最後に評価される式が
splitprm.each メソッドに渡されたブロックの中の
result += c.to_i
であると思っているのではないかと思いますが、それは正しくありません。
calc メソッドの中で最後に評価される式は
splitprm.each do |c|
result += c.to_i
end
です。 すなわち splitprm.each というメソッド呼び出しの返り値がそのまま
calc メソッドの返り値になります。
(そして Array#each メソッドは self を返すので、calc メソッドの返り値は splitprm の
参照先と同一です。)
以下のように書き換えるとわかりやすいのではないでしょうか。
ケース 3' (ケース 3 とほぼ等価)
def calc( prm )
splitprm = prm.split( // )
result = 0
b = Proc.new{ |c| result += c.to_i }
splitprm.each( &b )
end
> これはバグなのでしょうか?仕様なのでしょうか?
そんなわけなんでバグではないですね。
--
信岡 ゆう (NOBUOKA Yu)