Exception: StopIteration
- Inherits:
-
IndexError
- Object
- Exception
- StandardError
- IndexError
- StopIteration
- Defined in:
- enumerator.c
Overview
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!
Instance Method Summary (collapse)
-
- (Object) result
Returns the return value of the iterator.
Methods inherited from Exception
#==, #backtrace, exception, #exception, #initialize, #inspect, #message, #set_backtrace, #to_s
Constructor Details
This class inherits a constructor from Exception
Instance Method Details
- (Object) result
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
|
|
# File 'enumerator.c'
/*
* call-seq:
* stopiteration.result -> value
*
* 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"));
}
|