Ruby Хеши - Создание нового ключа со значением пустого массива - PullRequest
0 голосов
/ 20 апреля 2020

Итак, у меня есть следующее ха sh:

positions = {
      running: ["Kenny", "Joan", "Shabaz"],
      receivers: ["Luke", "Chris", "Megan", "Mark", "Mackenzie"],
      quarterback: ["Johnny"]
    }

В pry я могу добавить ключ :linemen с пустым массивом к positions, используя team.merge({:linemen =>[]}) ... Однако , это работает только при ручном вводе в подсказке pry. Я бы хотел, чтобы конечный результат выглядел так:

positions = {
      running: ["Kenny", "Joan", "Shabaz"],
      receivers: ["Luke", "Chris", "Megan", "Mark", "Mackenzie"],
      quarterback: ["Johnny"]
      linemen: []
    }

Что я делаю не так, чтобы этот team.merge({:linemen =>[]}) работал только в pry?

1 Ответ

1 голос
/ 20 апреля 2020

Этот

team.merge(:linemen =>[])

возвращает новый га sh и не меняет объект-получатель. вы можете увидеть, что возвращает pry, потому что pry работает таким образом, он показывает вам, к какому выражению приходит выражение.

Если вы хотите изменить объект-получатель, вам нужно:

1) использовать слиться! вместо этого вместо объекта-получателя

team.merge!(:linemen =>[])

2) назначьте новую переменную ha sh (даже то же самое, если она не требуется)

team_with_linemen = team.merge(:linemen =>[])
...