お世話になっております。A.中村です。 マニュアルで「ハッシュは nilを値にとることができません」 ということなので、 p Hash[1,2].keys →[1] p Hash[1,2,2,nil].keys →[1] は納得いくのですが、 p Hash[1,2].key?(2) →false p Hash[1,2,2,nil].key?(2) →true となってしまいました。 値は取れないがkeyは無いわけじゃないぞというなら 逆に前者の挙動を納得したくない(^^;ところです。 「key?(x)がtrueになるところのxの集合を keysは返してくれる」のかなと期待したのですが。 つーか、そういうのを期待する場合、どうすれば 得られるのでしょうか。 古くて恐縮な ruby 1.3.4-990625 [i386-cygwin] ruby 1.3.6 (1999-07-28) [sparc-solaris2.6] です。新しいのでは違う挙動なのかな… ところで ruby 1.3.4-990625 [i386-cygwin] で、 p Hash[1,2].index(2) →nil となるのは(解決済)のバグだった…のですよねえ? ruby 1.3.6 (1999-07-28) [sparc-solaris2.6] では1が返ってくるので。