Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby错误:NoMethodError:未定义nil:NilClass的“SpecificVisibleTreasures”方法_Ruby - Fatal编程技术网

Ruby错误:NoMethodError:未定义nil:NilClass的“SpecificVisibleTreasures”方法

Ruby错误:NoMethodError:未定义nil:NilClass的“SpecificVisibleTreasures”方法,ruby,Ruby,所以我用ruby写了这个游戏,我有这个功能: puts "Monsters that make you loose a hand-weapon" for m in monsters specificTreasures = Array.new specificTreasures = m.bc.SpecificVisibleTreasures + m.bc.specificHiddenTreasures for treasure in specificTreasures

所以我用ruby写了这个游戏,我有这个功能:

puts "Monsters that make you loose a hand-weapon"
  for m in monsters
    specificTreasures = Array.new
    specificTreasures = m.bc.SpecificVisibleTreasures + m.bc.specificHiddenTreasures
    for treasure in specificTreasures
      if (treasure == TreasureKind::ONEHAND)
        puts m.to_s
        break
      end
    end
  end
卑诗省是一个坏的结果,卑诗省指向一个等级怪物,它有:

def initialize(name, level, prize, bc)
    @name = name
    #@combatLevel = level
    @level=level
    @prize = prize
    @badConsequence = bc
  end
以及该类不良后果:

def initialize(aText, someLevels, someVisibleTreasures, someHiddenTreasures, someSpecificVisibleTreasures, someSpecificHiddenTreasures, death)
    @text = aText
    @levels = someLevels
    @nVisibleTreasures = someVisibleTreasures
    @nHiddenTreasures = someHiddenTreasures
    @SpecificVisibleTreasures = someSpecificVisibleTreasures
    @SpecificHiddenTreasures = someSpecificHiddenTreasures
    @death = death
  end
但它给了我一个错误: NoMethodError:nil:NilClass的未定义方法“SpecificVisibleTreasures”

请帮忙?

好的,谢谢大家,我已经修好了。它是其中一个类中的attr_访问器,我使用不同的循环类型更改了main:

monsters.each do |monstruo|


是的,就是这样,它现在起作用了

无法从这些代码位复制此内容。但问题是m.bc在某种程度上是零。找出原因。@SergioTulentsev谢谢你,是的,我知道我不能把所有的代码都放进去,因为它太大了,但这些代码只影响我上面写的部分。为什么它不起作用是我试图发现的……好吧,不要把所有的代码都放进去。将其简化为一个仍然有效并显示问题的最小示例。你很可能会在这个过程中发现问题。在迭代之前,可能会尝试拒绝怪物的nil。