Ruby哈希-使用空数组的值创建新键

问题描述 投票:-2回答:1

所以我有以下哈希值:

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

撬起,我可以使用:linemen将带有空数组的positions键添加到team.merge({:linemen =>[]}) ... ...但是,这仅在手动输入pry提示时有效。我希望最终结果看起来像这样:

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

team.merge({:linemen =>[]})仅能撬动我在做什么错?

arrays ruby hash merge
1个回答
1
投票

team.merge(:linemen =>[])

返回一个新的哈希,并且不更改接收者对象。您可以看到pry的返回值,因为pry可以这样工作,它可以显示表达式的计算结果。

如果要更改接收者对象,则必须采取以下方式:

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

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

2)将新的哈希分配给变量(即使您不需要更改,也可以使用同样的方法)

team_with_linemen = team.merge(:linemen =>[])
© www.soinside.com 2019 - 2024. All rights reserved.