インスタンス メソッドが 1 つ見つかりましHash#initialize_copy
た。しかし、何も文書化されていません。この点で、誰かがコードで私を助けることができますか?
はどのようにHash#hash
ハッシュ コードを計算しますか? その背後にあるロジックは何ですか?ハッシュ コードが使用されるシナリオは何ですか? ハッシュの各キー、たとえばh
は常に異なるハッシュ コードを持っていますか?
編集
私は以下を試しました:
C:\Documents and Settings\rakshiar>irb
irb(main):001:0> h=Hash.new
=> {}
irb(main):002:0> h["a"]=2
=> 2
irb(main):003:0> h["b"]=2
=> 2
irb(main):004:0> "a".hash
=> 100
irb(main):005:0> "b".hash
=> 101
irb(main):006:0> h1=Hash.new
=> {}
irb(main):007:0> h1["a"]=2
=> 2
irb(main):008:0> h1["b"]=2
=> 2
irb(main):009:0> "a".hash
=> 100
irb(main):010:0> "b".hash
=> 101
irb(main):011:0> exit
しかし、2 つのハッシュの組み合わせh and h1
が同じであることがわかります。key/value
しかし、それらのハッシュ コードもどのように同じなのでしょうか? ドキュメントにも記載されています-私は知っています。しかし、その理由は何ですか?-誰か明確にしてください?