Project1

标题: 一个hash主键的添加中,这个主键是否存在? [打印本页]

作者: a554187203    时间: 2013-8-24 21:43
标题: 一个hash主键的添加中,这个主键是否存在?
本帖最后由 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主键添加中,主角是否存在的,所以问题还是摆一会儿,如果知道请回吧
谢谢了
算了,自己都觉得白痴,为什么会纠结在这个地方,不会删除,就摆上已解决吧
作者: wwwcctvty    时间: 2013-8-25 11:01
获得物品的流程应该是这样的:
1,获得物品ID (gain_weapon(weapon_id, n))
2,计算该物品ID数量,如果该物品已经存在,就返回它的值.如果不存在就返回0    (@weapons.include?(weapon_id) ? @weapons[weapon_id] : 0)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1