我无法弄清楚为什么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
答案 0 :(得分:1)
显然@npcRangedList
是nil
。没有看到更多代码,没有人能够告诉你原因。
答案 1 :(得分:0)
@npcRangedList
是nil
。您可能希望将其设置为initialize
。
答案 2 :(得分: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]