In Files

  • enumerator.c

Parent

Methods

StopIteration

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
p e.next                   #=> 1
p e.next                   #=> 2
p e.next                   #=> 3
begin
  e.next
rescue StopIteration
  p $!.result              #=> 100
end
 
               static VALUE
stop_result(VALUE self)
{
    return rb_attr_get(self, rb_intern("result"));
}