LazyDropWhileSequence.Iterator

struct LazyDropWhileSequence.Iterator

An iterator over the elements traversed by a base iterator that follow the initial consecutive elements that satisfy a given predicate.

This is the associated iterator for the LazyDropWhileSequence, LazyDropWhileCollection, and LazyDropWhileBidirectionalCollection types.

Inheritance IteratorProtocol View Protocol Hierarchy →
Associated Types
Element = Base.Element

The type of element traversed by the iterator.

Import import Swift

Instance Methods

mutating func next()

Advances to the next element and returns it, or nil if no next element exists.

Repeatedly calling this method returns, in order, all the elements of the underlying sequence. As soon as the sequence has run out of elements, all subsequent calls return nil.

You must not call this method if any other copy of this iterator has been advanced with a call to its next() method.

The following example shows how an iterator can be used explicitly to emulate a for-in loop. First, retrieve a sequence's iterator, and then call the iterator's next() method until it returns nil.

let numbers = [2, 3, 5, 7]
var numbersIterator = numbers.makeIterator()

while let num = numbersIterator.next() {
    print(num)
}
// Prints "2"
// Prints "3"
// Prints "5"
// Prints "7"

Returns: The next element in the underlying sequence, if a next element exists; otherwise, nil.

Declaration

mutating func next() -> LazyDropWhileSequence<Base>.Iterator.Element?