3

以下のコードは repl.it および codeacademy ラボでは失敗しますが、8 未満のキー長を選択すると機能します。irb ではどちらのキー長も失敗しません。

これは Web REPL だけの問題ですか、それともキーの長さに実際の制限があるのでしょうか?

class Fixnum

    def in_words
        words =
        {
           100000000 => "trillion"
        }
        puts words[self]
    end

end

100000000.in_words
4

1 に答える 1

1

コンソールではすべてが正しいので、replの問題だと思います

2.0.0p247 :001 > words = {100000000 => "trillion"}
 => {100000000=>"trillion"} 
2.0.0p247 :002 > words[100000000]
 => "trillion" 

実際、ハッシュはキーをそのまま使用するのではなく、そのハッシュ サムを使用します。

2.0.0p247 :011 > 100000000.hash
 => -2175987708688930977 
2.0.0p247 :012 > 1.hash
 => 4338493366955093097

したがって、この意味ですべてのキーの長さは同じです。

于 2013-10-09T05:56:35.230 に答える