最初に以下のコードのパート I を実行し、目的の出力を取得しました。次に、それをいじって、パート II を行った調査を行うだけです。
パートI
irb(main):001:0> h1 = { "a" => 100, "b" => 200, :c => "c" }
=> {"a"=>100, "b"=>200, :c=>"c"}
irb(main):002:0> h1["a"]
=> 100
irb(main):002:0> h1[:c]
=> "c"
パート II
irb(main):003:0> h1.compare_by_identity
=> {"a"=>100, "b"=>200, :c=>"c"}
irb(main):004:0> h1.compare_by_identity?
=> true
irb(main):005:0> h1["a"]
=> nil
irb(main):006:0> h1[:c]
=> "c"
irb(main):007:0>
h1["a"]
パート I とパート II で異なる値を与えるのに、 では同じではないのはなぜh1[:c]
ですか?
Ruby 1.9.3 を使用しています。