stavo attraversando Ruby Koans tutorial series, quando mi sono imbattuto in questo about_hashes.rb
:Come funziona l'operatore di pala (<<) in Ruby Hash?
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
I valori in assert_equals
, è in realtà ciò che il tutorial previsto. Ma non riuscivo a capire come ci sia una differenza tra l'utilizzo dell'operatore <<
e l'operatore =
?
La mia aspettativa era che:
hash[:one]
sarebbe["uno"]
hash[:two]
sarebbe["dos"]
hash[:three]
sarebbe[]
Qualcuno può spiegare perché la mia aspettativa era sbagliato?
Divertente, è esattamente quello che mi aspettavo. Quindi, le montagne erano di nuovo solo montagne. –