Wie funktioniert die Schaufel (<<) Betreiber arbeiten in Ruby Hashes?

Ich war durch Ruby Koans-tutorial-Reihe, wenn stieß ich auf diese in about_hashes.rb:

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

Die Werte in assert_equals, ist eigentlich das, was das tutorial erwartet. Aber ich konnte nicht verstehen, wie es einen Unterschied zwischen der Verwendung << Betreiber und = Betreiber?

War meine Erwartung, dass:

  • hash[:one] wäre ["uno"]
  • hash[:two] wäre ["dos"]
  • hash[:three] wäre []

Kann mir bitte jemand erklären, warum meine Erwartung falsch war?

  • Komisch, das ist genau das, was ich erwartet hatte. Dann, die Berge waren wieder nur Berge.
InformationsquelleAutor bits | 2012-02-18
Schreibe einen Kommentar