可能重复:
How does shovel (<<) operator work in Ruby Hashes?RubyKoans - 混淆哈希例如
我做我的方式通过RubyKoans,以及关于散列的例子之一是真的困惑了我。该示例位于about_hashes.rb
文件中。这里是困惑我的代码:
hash = Hash.new([])
hash[:one] << "uno"
hash[:two] << "dos"
assert_equal __, hash[:one]
对于那些不熟悉RubyKoans,你应该填写为双下划线正确的值。
在本例中,我看到变量使用Hash
对象构造,它取代的nil
用空Array
默认值命名hash
。然后,使用<<
Ruby运算符将两个项目添加到hash
,每个项目都有一个数组元素。我期望hash[:one]
会返回一个值为["uno"]
的数组,但Ruby告诉我它实际上是["uno", "dos"]
。是什么赋予了?
如果你有两个问题,你应该问两个问题。这样他们都可以被回答,他们都可以被Google搜索到,他们都可以被其他具有相同问题的人发现。目前,你关于':foobar'的问题被隐藏在一个带有'Hash'标题的问题中,用'hash'标记。 – 2012-03-02 17:38:34