3

下面的代码在 repl.it 和 codeacademy 实验室中失败,但是当我选择密钥长度 < 8 时,它可以工作。irb 中的密钥长度都没有失败。

这只是网络 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 回答