我有這個事情的自定義類,與事對象的數組,像這樣:我可以控制自定義對象的數組在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)。 –