可能重複:
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