From: Nobuyoshi Nakada Date: 2007-08-22T09:54:27+09:00 Subject: [ruby-list:43920] Re: Hashへの生成順は保障されないのか? なかだです。 At Wed, 22 Aug 2007 08:32:56 +0900, GOTO Kentaro wrote in [ruby-list:43919]: > > > * 格納された順序を覚えられる > > > * keys.sort_by(&ord).each do |k| ... end の ord 相当を指定できる > > > という二通りを必要とすることが多いんですが、両方サポートしているんでしょうか。 > > > > 前者のみです。 > > なるほど。 > 大クラス主義的にはずいぶんと貧弱な気がしました。 > でもまあ、例外を起こさないように任意の順序を指定するのは > 手軽ではなかったりもしますね。 というか、今回の変更はst.cに対するものなので、直接rubyレベルの機 能を追加することはかなり面倒になります。 それに、任意の順序を指定したければ追加は簡単なので。 class Hash def order(&b) sort(&b).inject(self.class.new) {|h, (k, v)| h[k] = v; h} end def order_by(&b) sort_by(&b).inject(self.class.new) {|h, (k, v)| h[k] = v; h} end end -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦