才谷いいます。お世話になります。 > どのような状況で必要になった事なのか分からないので、もしかしたらズれた解 > 答かもしれませんが、Hashを直接拡張してしまうのはいかがでしょうか? > このようにはなりませんが、以下のように 黒田さんがおっしゃるような解も考えてみたのですが、 わたしがHashの拡張が欲しくなった経緯は以下の通りです。 eachメソッド等で呼んだとき、順序が保障されたものが欲しい。 そこで、下記のように派生クラスにkeyだけを配列に覚えさせといて、 それを利用すれば順序が保障される。 class Hash2 < Hash def initialize() @index_value=[] unless @index_value end def []=(aKey, aValue) @index_value.push(aKey) super(aKey, aValue) end def each_index @index_value.each_with_index do |itrKey, itrIndex| yield(itrKey, self[itrKey], itrIndex) end end end ついでに、今後、Hashが必要になったときは、 こちら(Hash2)を使うようにしたい。。。という理由でした。 で、利用するとき、 wHoge={} というリテラルでHash2がインスタンス化できないものか? 単なるわたしの怠慢なような気もします。 以上、よろしくお願いいたします。 -- saitani cxj15527 / activemail.jp