【发布时间】:2012-03-09 18:19:36
【问题描述】:
当我在about_hashes.rb 看到这个时,我正在经历Ruby Koans tutorial series:
def test_default_value_is_the_same_object
hash = Hash.new([])
hash[:one] << "uno"
hash[:two] << "dos"
assert_equal ["uno", "dos"], hash[:one]
assert_equal ["uno", "dos"], hash[:two]
assert_equal ["uno", "dos"], hash[:three]
assert_equal true, hash[:one].object_id == hash[:two].object_id
end
assert_equals 中的值实际上是教程所期望的。但我不明白使用<< 运算符和= 运算符有什么区别?
我的期望是:
-
hash[:one]将是["uno"] -
hash[:two]将是["dos"] -
hash[:three]将是[]
谁能解释一下为什么我的期望是错误的?
【问题讨论】:
-
有趣,这正是我所期望的。然后,山又只是山。