From: xibbar Date: 2013-07-17T08:26:03+09:00 Subject: [ruby-dev:47515] Hash#to_hashがHashを返さない xibbarこと藤岡です。 表題はちょっぴりあおり気味ですが、 RubyのHash#to_hashはHashを返さずにselfを返します。 Hashのまま使っているんだったらいいのですが、 これを継承すると、 % irb irb(main):001:0> class MyHash nil irb(main):002:0> myhash=MyHash.new => {} irb(main):003:0> myhash.to_hash => {} irb(main):004:0> myhash.to_hash.class => MyHash となってしまいます。 これ、Array#to_aやString#to_sだと ArrayとStringをそれぞれ返します。 Hash#to_hashはHashを返したほうがいいのではないでしょうか? 現状、継承したHashからHashを得るためには Hash[myhash]とやるのが正解のようで、 これはこれで裏技に近いと思いました。