我想为基于Ruby数组的对象创建一个容器类。我想操纵这些容器中的多个容器,例如将两个连接在一起。如果我试试这个:如何引用Ruby中同一类的另一个对象?
class Thing
attr_accessor :name
end
class Things
def initialize
@things = Array.new
end
def addone(a)
@things.push(a)
end
def append(list)
list.each { |i| addone(i) }
end
end
item1 = Thing.new
item2 = Thing.new
item3 = Thing.new
item4 = Thing.new
item1.name = "Marty"
item2.name = "Fred"
item3.name = "Janice"
item4.name = "John"
list1 = Things.new
list1.addone(item1)
list1.addone(item2)
list2 = Things.new
list2.addone(item3)
list2.addone(item4)
list3 = Things.new
list3 = list2.append(list1)
我得到的错误:
in
append': undefined method
each' for # (NoMethodError) from ./test.rb:40:in `'
我已经尝试不同的方法,例如创建每种方法,因为它似乎想要的,但至今没有运气。有什么建议么?并提前致谢!
我偷懒的办法:'高清追加(*列表)'再后来'list.flatten.each {...}' – tadman
除非你要能够存储阵列:) – mudasobwa
这会破坏数组事情有点,这是真的。好点子! – tadman