これは仕様で「しよう」か?
いや、超くだらない洒落言ってる場合じゃないんだが、昨日Rubyで「あれっ???」って思ったこと。*1
$ irb --prompt simple >> ary = [] => [] >> h = {ary => 0} => {[]=>0} >> ary << 1 => [1] >> h => {[1]=>0} >> h[ary] => nil >> h[[1]] => nil >> h => {[1]=>0}
0 が取り出せない・・・(ToT)
ハッシュってキーの値が変更されると取り出せないのかなぁ?
リファレンスを見ると、eql?メソッドがハッシュのキーの同一性の比較に使われるらしい。で、Arrayのeql?メソッド見ると「各要素をそれぞれ順に Object#eql? で比較して、全要素が等しければ真を返します」とのこと。
・・・
「1.eql? 1」は true なんだけどなぁ・・・
私の感覚がおかしくて、この動きの方が正しいのかな?どうも理屈がわからない。う〜ん・・・。
ちなみに、昨日書いてたプログラムは2重配列+Array#assocメソッドで対処しました。