设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1673|回复: 4
打印 上一主题 下一主题

[已经解决] 请问2个哈希如何合并?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

跳转到指定楼层
1
发表于 2019-5-20 15:58:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
例如此表: $黑暗之魂{"宫崎英高"=>{:死亡数 =>5}}  ,我想和 a1"攻其阴睾"=>{:死亡数 =>2}  合并成  $黑暗之魂{"宫崎英高"=>{:死亡数 =>5}, "攻其阴睾"=>{:死亡数 =>2}} 请问如何做?

Lv4.逐梦者

梦石
0
星屑
9677
在线时间
570 小时
注册时间
2017-9-28
帖子
208
2
发表于 2019-5-20 16:01:10 | 只看该作者
  1. { a: 1 }.merge({ b: 2 }) #=> { a: 1, b: 2 }
复制代码
如果有重复,后者覆盖前者

评分

参与人数 2星屑 +50 +1 收起 理由
VIPArcher + 50 认可答案
jianyulei + 1 认可答案

查看全部评分

喵喵喵
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

3
 楼主| 发表于 2019-5-20 16:50:54 | 只看该作者
hyrious 发表于 2019-5-20 16:01
如果有重复,后者覆盖前者

我还有个问题,就是这样合并之后我发现不同内容下的同名主键都会被同时判断,还是1楼的那个例子,我如果$黑暗之魂["宫崎英高"][:死亡数] = 10 之后,我发现"攻其阴睾"里面的死亡数也变成了同一个数值,这属于正常现象吗?
回复 支持 1 反对 0

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9677
在线时间
570 小时
注册时间
2017-9-28
帖子
208
4
发表于 2019-5-21 16:10:09 | 只看该作者
jianyulei 发表于 2019-5-20 16:50
我还有个问题,就是这样合并之后我发现不同内容下的同名主键都会被同时判断,还是1楼的那个例子,我如果$ ...

这说明这两个键指向的是同一个 hash
  1. a = { x: 1 }
  2. b = { y: a }
  3. c = { z: a } # 注意这里的 a 是同一个
  4. b[:y][:x] = 2
  5. c #=> {:z=>{:x=>2}}
复制代码
解决办法当然是传不一样的,如果这个 a 只有一层的话可以用 a.clone
  1. c = { z: a.clone }
复制代码
如果是多层的,建议先定义一个方法
  1. def default_a() { x: 1 } end
  2. c = { z: default_a }
复制代码

点评

原来如此,感谢  发表于 2019-5-21 22:01

评分

参与人数 1+1 收起 理由
jianyulei + 1 我很赞同

查看全部评分

喵喵喵
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 19:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表