西山和広です。
Range#eachの初回のみでbeginを変更した時に、
* ループ回数を変更することができる
* 変更した後にブロックに渡された値も変わっている
ということがおきるのは意図的でしょうか?
% ruby18 -ve 's="1";r=s.."5";r.each{|i|p i; s.replace("3");p i}'
ruby 1.8.3 (2005-06-25) [i686-linux]
"1"
"3"
"4"
"4"
"5"
"5"
% ruby18 -ve 's="1";r=s.."5";r.each{|i|p i; s.replace("3") if i=="2";p i}'
ruby 1.8.3 (2005-06-25) [i686-linux]
"1"
"1"
"2"
"2"
"3"
"3"
"4"
"4"
"5"
"5"
%
--
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)