-3

我不明白为什么 ruby​​ 会给我这个错误。这是代码。

def lookThere
    lookAround = @warrior.look
    lookAround.each do |npc|
        if not npc.empty? and not npc.wall?
            @npcRanged = @npcRangedList[npc.to_s()]
            return 
        end
    end         
end
4

3 回答 3

1

显然@npcRangedListnil。没有看到更多代码,没有人能告诉你为什么。

于 2013-04-21T23:46:12.977 回答
0

@npcRangedListnil。您可能希望将其设置为initialize.

于 2013-04-21T23:46:04.990 回答
0

可能您可以通过以下方式处理这种情况。我只是尝试创建一种可能的方法来重新生成您遇到的错误以及相同的一种可能的解决方案:

class Foo
 def intialize
 end
 def showval
  @arr[2] = 2
  @arr
 end
end

p Foo.new.showval #=> `showval': undefined method `[]=' for nil:NilClass (NoMethodError)

现在,如果我们编写与下面相同的类,则不会抛出错误。

class Foo
 def initialize
  @arr ||= []
  end
 def showval
  @arr[2] = 2
  @arr
 end
end

p Foo.new.showval #=> [nil, nil, 2]
于 2013-04-22T07:31:49.650 回答