From: Shima Shizuo Date: 2007-08-19T09:52:34+09:00 Subject: [ruby-list:43860] Re: Hashへの生成順は保障されないのか? こんにちは、嶋です。 >Hashクラスを継承したクラスを定義してはいかがでしょうか. >例えば,以下のようにOrderedHashクラスを定義します. > >class OrderedHash < Hash > def initialize > @index = [] > end > > def []=(key, val) > @index.push(key) > super(key, val) > end > > def each > @index.each do |key| > yield(key, self[key]) > end > self > end >end 同じkeyを複数回指定されると、each で同じkey,valが複数回出てきて しまいそうですね。 def []=(key, val) + @index.delete(key) @index.push(key) super(key, val) end とするのがいいかなぁ・・ ---- Shima Shizuo r6@chubu.interq.or.jp