Project1

标题: 急求~关于$data_skills用法 [打印本页]

作者: 沉滞的剑    时间: 2013-4-16 08:36
标题: 急求~关于$data_skills用法
本帖最后由 沉滞的剑 于 2013-4-16 10:15 编辑

我照着原程序想读取一下$data.skills里的数据
我一开始以为这是个数组,然后就写p $data_skills.name
然后系统告诉我这是个个nilclass类,是没有[]方法滴...
然后我就郁闷了
为什么原程序这么写
@item.object = $data_skills[skill_id]
不会报错,谁能告我 $data_skills到底是个啥,该怎么用啊


---------------------------
我想实现的效果是遍历全部技能名....应该怎么写
作者: Sion    时间: 2013-4-16 09:54
它到底是个啥,打开控制台。用 p $data_skills 看看不就知道了
发现它就是个数组,但是里面太乱,再试试 $data_skills.each {|skill| printf skill.class.to_s + " "}
发现第一个值为nil,原来直接遍历 $data_skills 对 nilClass 调用 name 方法导致报错。

$data_skills[1..-1] 就能排除掉第一个
作者: 沉滞的剑    时间: 2013-4-16 09:55
本帖最后由 沉滞的剑 于 2013-4-16 09:56 编辑

作废作废,作废
作者: ljyinvader    时间: 2013-4-16 10:00
$data_skills是数组,p $data_skills.name应该改成p $data_skills[1].name这样才对

遍历全技能名
for skill in $data_skills
  if skill != nil
    p skill.name
  end
end

因为这个for是从0开始的,而$data_skills的数据是从1开始的,$data_skills[0]是空的,所以要判断一下
作者: 沉滞的剑    时间: 2013-4-16 10:05
ljyinvader 发表于 2013-4-16 10:00
$data_skills是数组,p $data_skills.name应该改成p $data_skills[1].name这样才对

遍历全技能名

不好使...提示我each方法在nill:Nillclass里没有定义...
作者: 沉滞的剑    时间: 2013-4-16 10:14
Sion 发表于 2013-4-16 09:54
它到底是个啥,打开控制台。用 p $data_skills 看看不就知道了
发现它就是个数组,但是里面太乱,再试试 $d ...

谢谢,又上了一课。




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