首页 > 解决方案 > Ruby Hashes - 使用空数组的值创建一个新键

问题描述

所以我有以下哈希:

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

在撬动中,我可以使用...添加一个:linemen带有空数组的键但是,这仅在提示中手动输入时才有效。我希望最终结果如下所示:positionsteam.merge({:linemen =>[]})pry

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

我做错了什么team.merge({:linemen =>[]}),只能在撬动中工作?

标签: arraysrubyhashmerge

解决方案


这个

team.merge(:linemen =>[])

返回一个新的散列并且不改变接收者对象。您可以看到 pry 中返回的内容,因为 pry 以这种方式工作,它向您展示了表达式的计算结果。

如果要更改接收器对象,则必须采用以下方法:

1)使用合并!改为更改接收器对象

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

2)将新的哈希分配给一个变量(即使是相同的工作,除非你需要它不变)

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

推荐阅读