お世話になっております。 A.中村です。 On Tue, 23 Nov 1999 06:54:26 +0900 Kikutani Makoto <kikutani / galaxy.net> wrote: >ただ、Arrayをpositionで指定してるのではなく、eachで >指定してるんで、 a.each{|n| ...} だったら、内部でArrayが変更されようが >やはり全メンバーに適用されるのかな、などとプログラムしてバグってました。 eachが要素の存在の検索(ヘンな言い方だな)を インラインコールバックに呼ばれる「たびに」 行うんだったら、そう動くんでしょうね。 #eachメソッドの実装「に」外部イテレータが使われているってことかな でも、なんかトロそう。 一般には hoge.dup.each{|a| hoge.破壊的メソッド } でしょうか。特にArrayならばコンテナ(?)なんで dupすることでの効率や論理的不整合も問題ないでしょうし。 #先日Compositeを書いて初めてコレを意識した(笑) ちなみに最初焦って(笑)、 hoge.reverse.each{|a| hoge.破壊的メソッド } って書きました。これもたしかに動くんですが、これって 「逆順だから」動くんじゃなくて 「複製だから」動くんですよね。後で気づいた。 …って、こんな認識でいいんでしょうか?>俺