Putting protocols and generics to use
One cool thing about Swift is that it contains generators and sequences. They provide an easy way to iterate over a list of values. Ultimately, they boil down to two different protocols: GeneratorType
and SequenceType
. If you implement the SequenceType
protocol in your custom types, it allows you to use the for-in
loop over an instance of your type. In this section, we will look at how to do that.
Generators
The most critical part of this is the GeneratorType
protocol. Essentially, a generator is an object that you can use repeatedly to ask for the next object in a series until there are no objects left. Most of the time, you can simply use an array for this, but it is not always the best solution. For example, you can even make a generator that is infinite.
There is a famous infinite series of numbers called the Fibonacci Sequence where every number in the series is the sum of the two previous numbers. This is especially famous because it is found everywhere...