Iterators
An iterator is an object that returns the items of a collection in sequence, from the first to the last. To return the following item, it uses a next()
method. Here, we have an opportunity to use an Option
. Because an iterator can have no more values at the last next()
call, next()
always returns an Option
, Some(value)
when there is a value and None
when there are no more values to return.
The simplest object that has this behavior is a range of numbers 0..n
(remember n
is excluded). Every time we used a for
loop like for i in 0..n
the underlying iterator mechanism was put to work. Let's see an example:
// see code in Chapter 5/code/iterators.rs let mut rng = 0..7; println!("> {:?}", rng.next()); // println!("> {:?}", rng.next()); // for n in rng { print!("{} - ", n); } // prints 2 - 3 - 4 - 5 - 6
This prints the following output:
Some(0)Some(1)
We see here the function next()
at work, producing 0
and 1
, and so on; the for
loop continues until the end.
Note
Exercise
:
...