Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
407 views
in Technique[技术] by (71.8m points)

Iterate through an Ruby Array and get(yield or return) each item in the array

I have an array and I need to create a class method named "each" to yield or return (not sure what the difference is of those or which I need to use if any) each item in the array when the method is called.

Do I need to use return instead of yield or neither?

class Sum

 def initialize
   @sum =  Array.new
 end

 def each
 @sum.each do |item|
   yield item
 end 

end
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You could include Enumerable and implement each and get a lot of functionality for free.

class Sum
  def initialize
    @sum = []
  end

  def each &block
    @sum.each &block
  end
end

This will yield each item of the collection or if you do not provide a block it will return you an enumerator just like a normal Array would


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...