arrays - Ruby Hashes - 使用空数组的值创建一个新键
问题描述
所以我有以下哈希:
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 =>[]})
,只能在撬动中工作?
解决方案
这个
team.merge(:linemen =>[])
返回一个新的散列并且不改变接收者对象。您可以看到 pry 中返回的内容,因为 pry 以这种方式工作,它向您展示了表达式的计算结果。
如果要更改接收器对象,则必须采用以下方法:
1)使用合并!改为更改接收器对象
team.merge!(:linemen =>[])
2)将新的哈希分配给一个变量(即使是相同的工作,除非你需要它不变)
team_with_linemen = team.merge(:linemen =>[])
推荐阅读
- api - 索尼 DSC-RX10M3 和方法“getCameraFunction”和“setCameraFunction”
- ascii - 十进制数字的字符代码表示
- java - 2.1.1.RELEASE 中 SpringBoot 中的 @Value
- grails - grails:一个字段,多个类
- node.js - 将 mariadb nodeJS 连接器与多个查询一起使用
- azure - 是否可以自定义 Backlogs 视图
- html - 如何删除iphone,ipad上数字上的超链接?
- kubernetes - 在每个集群的基础上覆盖 helm 子图中的值的最佳实践是什么?
- javascript - 标记复选框已完成 - 反应
- ruby-on-rails - 当作为参数传递给另一个方法时,HTTParty::Response 被转换为 Hash