我有这门课:
class MyArray
attr_accessor :data
def initialize(my_object = nil)
@data = Array[*my_object]
end
def <<(y)
@data << y
end
def each
@data.each
end
end
我正在这样使用它
subject = MyArray.new([2, 5, 3]) d = [] subject.each { |i| d << i }
问题是,它甚至不会通过 -subject.each- 迭代一次。我应该怎么做才能从数组中返回“每个”值作为方法返回值?如何返回迭代器本身?
我试过了,它也不起作用:
def each [2,5,3].each end
感谢“meagar”和“Erik Allik”,我们得到了正确的答案:(只有“def each”方法发生了变化)
class MyArray
attr_accessor :data
def initialize(my_object = nil)
@data = Array[*my_object]
end
def <<(y)
@data << y
end
def each(&block)
@data.each(&block)
end
end