Дополнительно
Добавить пару ключ/значение в хэш с
В Ruby, можно добавить значения для существующих массивов с использованием <<:
a = []
a << "foo"
но, можно также добавлять пары ключ/значение к существующему хэш?
h = {}
h << :key "bar"
Я знаю, что вы можете сделать:
h[:key] = ""
h[:key] << "bar"
но, что's не хочу.
Спасибо.
72
6
Есть
веселого Рождества!
.Поскольку хэши не'т быть упорядочены, нет'т понятие присоединения. В Ruby хэши с 1.9 поддерживать порядок вставки, однако. Вот несколько способов для добавления новой пары ключ/значение.
Самое простое решение
Если вы хотите способ, использовать "магазин":
Если вы действительно, действительно хотите использовать на "совок" и оператор (
<<
), на самом деле добавляя к значению хэш в массив, и вы должны указать ключ:Нет, я не'т думаю, что вы можете добавлять пары ключ/значение. Единственное, что ближе что я знаю о том, используя
магазин
метод:Возможно, вы хотите хэш#слияние ?
Если вы хотите изменить массив в месте слияния!`
Мне приходилось делать подобное, но мне нужно, чтобы добавить значения с одинаковыми ключами. Когда я использую слияния или обновления я могу't нажмите значения с одинаковыми ключами. Поэтому мне пришлось использовать массив хэшей.
Подобно тому, как они не сливаются!
и
магазинлечить _existing_ хэши по-разному в зависимости от параметров, и, следовательно, повлияет на ваши предпочтения. Кроме того, что с точки зрения синтаксиса, сливаться друг с другом!
's ключ: "в значении"
в синтаксис соответствует против JavaScript и Python. Я'ключ-значение ве всегда ненавидел запятая-разделение пар, лично.Чтобы получить машинист экскаватора
<<
работает, я бы посоветовал использовать Марк Томас'ы ответ.