class StopIteration - RDoc Documentation (original) (raw)

Raised to stop the iteration, in particular by Enumerator#next. It is rescued by Kernel#loop.

loop do puts "Hello" raise StopIteration puts "World" end puts "Done!"

produces:

Hello Done!

Public Instance Methods

result → value click to toggle source

Returns the return value of the iterator.

o = Object.new def o.each yield 1 yield 2 yield 3 100 end

e = o.to_enum

puts e.next
puts e.next
puts e.next

begin e.next rescue StopIteration => ex puts ex.result
end

static VALUE stop_result(VALUE self) { return rb_attr_get(self, id_result); }