我有这个事情的自定义类,与事对象的数组,像这样:我可以控制自定义对象的数组在Ruby中的样子吗?
class Thing
attr_accessor :name
def initialize(name)
@name = name
end
def to_s
@name
end
end
a = []
a << Thing.new("Fred")
a << Thing.new("George")
a << Thing.new("Steve")
a
当我看到在IRB的阵列,我希望它看起来像这样:
[Fred, George, Steve]
而非此(对象信息): [#,#,#]
换句话说,我想能够看到到阵列中的每个元素的值to_s当我在看该阵列与irb。有没有办法做到这一点?
这个'a.map {| o | o.name}#=> [“Fred”,“George”,“Steve”]或者'a.map(&:name)#=> [弗雷德“,”乔治“,”史蒂夫“]? –
如果你想要一个类的所有实例,你可以写ObjectSpace.each_object(Thing).map(&:name)#=> [“Fred”,“George”,“Steve”]'。有关更多详细信息,请参阅[这里](https://stackoverflow.com/questions/14318079/how-do-i-list-all-objects-created-from-a-class-in-ruby)。 –