Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Enumeratorクラス > peek_values

instance method Enumerator#peek_values

peek_values -> Array[permalink][rdoc]

Enumerator#next_values のように「次」のオブジェクトを 配列で返しますが、列挙状態を変化させません。

Enumerator#next, Enumerator#next_values のように 現在までの列挙状態に応じて「次」のオブジェクトを返しますが、 next と異なり列挙状態を変更しません。

列挙が既に最後へ到達している場合は、StopIteration 例外を発生します。

このメソッドは Enumerator#next_values と同様

yield

yield nil

を区別するために使えます。

# 例
o = Object.new
def o.each
  yield
  yield 1
  yield 1, 2
end
e = o.to_enum
p e.peek_values    #=> []
e.next
p e.peek_values    #=> [1]
p e.peek_values    #=> [1]
e.next
p e.peek_values    #=> [1, 2]
e.next
p e.peek_values    # raises StopIteration
[EXCEPTION] StopIteration:
列挙状態が既に最後へ到達しているとき

[SEE_ALSO] Enumerator#next, Enumerator#next_values, Enumerator#peek_values