StopIteration 類別

引發以停止迭代,特別是 Enumerator#next。它會被 Kernel#loop 救援。

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

產生

Hello
Done!

公開實例方法

result → 值 按一下以切換來源

傳回迭代器的傳回值。

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

e = o.to_enum

puts e.next                   #=> 1
puts e.next                   #=> 2
puts e.next                   #=> 3

begin
  e.next
rescue StopIteration => ex
  puts ex.result              #=> 100
end
static VALUE
stop_result(VALUE self)
{
    return rb_attr_get(self, id_result);
}