-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

明らか@npcRangedListにですnil。もっとコードを見ないと、誰も理由を教えてくれません。

于 2013-04-21T23:46:12.977 に答える
0

おそらく、以下の方法で状況を処理できます。発生したエラーを再生成する1つの可能な方法と、同じ解決策を1つ作成しようとしました:

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 に答える
0

@npcRangedListですnil。あなたはおそらくそれを何かに設定したいと思うでしょうinitialize

于 2013-04-21T23:46:04.990 に答える