小编use*_*222的帖子

获取nil:此代码中的NilClass(NoMethodError)

我正在开始ruby书,这是我的代码,它给出了以下错误:

in 'show_current_description': undefined method 'full_description' for nil:NilClass (NoMethodError)

代码如下.任何帮助表示赞赏.谢谢!

class Dungeon
  attr_accessor :player

  def initialize(player_name,start_location)
    @player=Player.new(player_name,start_location)
    puts @player.location
    @rooms=[]
    show_current_description
  end

  def show_current_description
    @rm=find_room_in_dungeon(@player.location)
    @rm.full_description
  end

  def find_room_in_dungeon(reference)
    @rooms.detect{|room| room.reference == reference; puts room.full_description}
  end
  def add_room(reference,name,description,connections)
    @rooms << Room.new(reference,name,description,connections)
  end

  Player=Struct.new(:name,:location)

  class Room 
    attr_accessor :reference, :name, :description, :connections

    def initialize(reference,name,description,connections)
      @reference=reference
      @name=name
      @description=description
      @connections=connections
    end

    def full_description
      "You are in " + @description
    end
  end
end

d=Dungeon.new("Good Man",:small_cave)
d.add_room(:small_cave,"Small Cave","This is a small claustrophobic cave", {:east => :largecave}) …
Run Code Online (Sandbox Code Playgroud)

ruby

0
推荐指数
1
解决办法
4093
查看次数

标签 统计

ruby ×1