2006-04-20 破壊的メソッドとメモリ Ruby 適当な配列aがあって、中の要素を取り出しほげほげする時。 a.each{|tmp| tmp.hoge() } while item = a.shift item.hoge() end 前者のやり方だと配列aに変更は加えられない。後者の場合、shiftは破壊的メソッドとして作用するので、配列aは空になる。 この後に続くコードでaを参照することが無いのであれば、配列を解放して無駄なメモリを使っていないということで後者のやり方が効率的ということになるのかな?