Ruby匹配数组中对象内的类变量

时间:2016-01-08 23:27:11

标签: arrays ruby object matching

我绝不是专家,在通过Readline输入处理对象时遇到了一些麻烦。

我有一个Player类,一个Inventory类和一个Item类,我希望玩家能够输入“穿砖”并使其与数组Inventory.contents中的Item.name匹配并添加该项到Player.worn。这就是我所拥有的:

hypervisor.cpuid.v0 = "FALSE"

我有一个Readline提示符接受输入字符串的第一个标记作为命令,这里的'wear'作为一个案例,但是我很难掌握如何匹配数组中对象内的后续字符串一个单词的对象。

inv.contents.inspect:

class Player
  def wear(item)
    @worn << item
  end
end

class Inventory
  attr_accessor :contents
  def initialize
    @contents = []
    @stick = Item.new('a brown stick', 'long and pointy')
    @brick = Item.new('a red brick', 'rough and heavy')
    @contents << @stick
    @contents << @brick
  end
  def list_contents
    @contents.each {|item| puts item.name }
    nil
  end
end

class Item
  attr_accessor :name, :desc
  def initialize(name, desc)
    @name = name
    @desc = desc
  end
end

player = Player.new
inv = Inventory.new

我怎么能通过Array inv.contents搜索“穿砖”来匹配@ name =“a red brick”并选择该项输入Player.wear?

@ c650:谢谢。看起来已经解决了!

新课程:

[#<Item:0x007fcf61935bb0 @name="a brown stick", @desc="long and pointy">, #<Item:0x007fcf61935b38 @name="a red brick", @desc="rough and heavy">]

0 个答案:

没有答案