Я хотел бы объяснить какое-то поведение в Ruby, с которым я столкнулся в Коанах - PullRequest
0 голосов
/ 02 февраля 2012

Почему второй 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

1 Ответ

7 голосов
/ 02 февраля 2012

Аргументом Hash.new является значение по умолчанию - когда ключ отсутствует и читается, вместо этого возвращается это значение. Вы также можете передать блок в Hash.new, чтобы иметь более сложное поведение со значениями по умолчанию.

http://ruby -doc.org / ядро-1.8.7 / Hash.html # способ-с-новый

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...