当我在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]
等于[]
有人能解释一下为什么我的期望是错误的吗?