[#47548] [ruby-trunk - Feature #8696][Open] Process.setproctitle — "znz (Kazuhiro NISHIYAMA)" <redmine@...>

13 messages 2013/07/27

[#47559] [ruby-trunk - Bug #8711][Open] 最近NoMemoryErrorが多い — "naruse (Yui NARUSE)" <naruse@...>

13 messages 2013/07/31

[ruby-dev:47515] Hash#to_hashがHashを返さない

From: xibbar <xibbar@...>
Date: 2013-07-16 23:26:03 UTC
List: ruby-dev #47515
xibbarこと藤岡です。

表題はちょっぴりあおり気味ですが、
RubyのHash#to_hashはHashを返さずにselfを返します。
Hashのまま使っているんだったらいいのですが、
これを継承すると、
% irb
irb(main):001:0> class MyHash<Hash;end
=> 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]とやるのが正解のようで、
これはこれで裏技に近いと思いました。

In This Thread

Prev Next