如果是要创建 N 多类似的 k-v 对,那么 Hash.new(XXX),这里 XXX 是某个默认值。 可以是字符串,或者是数组等。 这样就会生成 N 多个名值对,现在问题就来了。
hash = Hash.new("rubychina")
hash[:one] hash[:two] hash[:ZZZ]
可以读取出了很多个。 但是: hash.fetch(:one) 就出错了。
问题和我之前的http://ruby-china.org/topics/1707这个有一点重合。
问题来了: 1,这样是无限制的吗?是根据内存的限制,还是说有什么规则呢?
2,为什么 [] 可以任意读取,而 fetch 却又不能读取,发生 KeyError 异常了呢?