稲葉です。 この話題を見るのは3度めです。 自分が見た一度目は自分が出したのだけど、それ以前にはなかったのでしょう か? Masatoshi SEKI wrote: > > 咳です。 > ruby 1.2.3(99/02/16) [i586-linux] を使ってます。 > > 話題のイテレータなんですが、 > > irb(main):001:0> str = '1 2 3' > irb(main):002:0> str.split.each do |str| str = 'foo' end > irb(main):003:0> p str > "foo" > > となるのは正しい挙動でしょうか ? rubyのblock変数の仕様だそうです。自分は do |x, y, z| ... end は do |*__args__| x,y,z = __args__; ... end とおなじものと理解してます。 > ブロックの中の変数(?) str に代入したら、 > 外の str に代入されました。 |x|のような||内の変数はそこまでblock外で使われていなかった時のみblock 内の変数になるようです。 -- 稲葉 浩人 <inaba / st.rim.or.jp>