Почему второй assert_equal ниже работает?Как ruby ассоциирует «dos» с: two?
def test_default_value hash2 = Hash.new("dos") hash2[:one] = 1 assert_equal 1, hash2[:one] assert_equal "dos", hash2[:two] end
Аргументом Hash.new является значение по умолчанию - когда ключ отсутствует и читается, вместо этого возвращается это значение. Вы также можете передать блок в Hash.new, чтобы иметь более сложное поведение со значениями по умолчанию.
Hash.new
http://ruby -doc.org / ядро-1.8.7 / Hash.html # способ-с-новый