Как слить два хэша? Есть два хеша:person1 = { first: "Alex", last: "Go" }
person2 = { first: "Masha", last: "Valeeva" }
Можно ли с помощью метода merge изменить только значение ключа last:, либо каким умный и простым (рубивеевским) способом это лучше сделать?

21 Авг 2019 в 07:09
142 +1
0
Ответы
1

Да, можно использовать метод merge!, чтобы объединить два хеша и изменить значение ключа last. Например:

person1 = { first: "Alex", last: "Go" }
person2 = { first: "Masha", last: "Valeeva" }
person1.merge!(person2) { |key, old_val, new_val| key == :last ? new_val : old_val }
puts person1

Этот код объединит два хеша, оставив значение ключа last равным значению из второго хеша, и выведет результат:

{ :first=>"Alex", :last=>"Valeeva" }

Также можно сделать это более простым способом, просто присвоив новое значение ключу last:

person1[:last] = person2[:last]
puts person1

Этот код также изменит значение ключа last в первом хеше на значение из второго хеша и выведет результат:

{ :first=>"Alex", :last=>"Valeeva" }
20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 061 автору
Первые отклики появятся уже в течение 10 минут
Прямой эфир