From: matz@... (Yukihiro Matsumoto) Date: 1997-06-05T12:12:33+09:00 Subject: [ruby-list:3077] Re: [BUG?] Hash::delete まつもと ゆきひろです In message "[ruby-list:3076] [BUG?] Hash::delete" on 97/06/05, Akinori ITO writes: | |あ伊藤です。 ruby のバグ報告です。 | |Hash::each のイテレータブロックの中で、パラメータとして渡された |キーを delete で削除すると、ruby が core dump します。 | |$ cat test.rb |a = {"a"=>1,"b"=>2,"c"=>3} |a.each do |k,v| | a.delete(k) |end すんません.これは一種の仕様です.Array,Hashのイテレータの中 での要素の削除は出来ません.更に言えば,一般的にCollection系 のイテレータブロック内での要素の削除は保証されていないんです. こういう場合は a.keys.each do |k| .. end という感じでお願いします. # しかし,せめてcore dumpはしないようにしたいなあ. まつもと ゆきひろ /:|)