查看: 1480|回复: 1

[已经解决] 一个hash主键的添加中,这个主键是否存在?

[复制链接]

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
回帖
1859
发表于 2013-8-24 21:43:48 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 a554187203 于 2013-8-24 21:52 编辑

阅读预置脚本中,有这样一句代码
  1.    def gain_weapon(weapon_id, n)
  2.     @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
复制代码
这里的方法代码是
  1.   def weapon_number(weapon_id)
  2.     return @weapons.include?(weapon_id) ? @weapons[weapon_id] : 0
复制代码
我有点奇怪,正在赋值中,但@weapons的主键[weapon_id]存在吗? 如果存在,它返还一个nil值有什么用,而且nil值是无法相加的
如果不存在,weapon_number(weapon_id) + n,这句代码为什么不直接使用n呢

想了想,这句子似乎是为了在有这个武器的时候,实现武器的相加
不过由于并没有涉及过这方面的内容,所以纠结于此了
不知道自己的猜想是否是正确的,而且也挺好奇hash主键添加中,主角是否存在的,所以问题还是摆一会儿,如果知道请回吧
谢谢了
算了,自己都觉得白痴,为什么会纠结在这个地方,不会删除,就摆上已解决吧
梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
回帖
711
发表于 2013-8-25 11:01:43 | 显示全部楼层
获得物品的流程应该是这样的:
1,获得物品ID (gain_weapon(weapon_id, n))
2,计算该物品ID数量,如果该物品已经存在,就返回它的值.如果不存在就返回0    (@weapons.include?(weapon_id) ? @weapons[weapon_id] : 0)
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部