Ответ 1
GeneratorType (IteratorProtocol в Swift 3): Generators
- это то, что может дать элемент next
некоторой последовательности, если нет элемента, он возвращает nil
. Generators
инкапсулирует состояние итерации и интерфейсы для итерации по последовательности.
Генератор работает, предоставляя единственный метод, а именно - next()
, который просто возвращает следующее значение из базового sequence
.
Следующие классы Принять протокол GeneratorType:
DictionaryGenerator, EmptyGenerator, подробнее здесь.
SequenceType (Последовательность в Swift 3): A sequence
представляют собой ряд значений. sequence
- это тип, который можно повторить с помощью цикла for...in
.
По существу последовательность представляет собой генератор factory; то, что знает, как создавать генераторы для последовательности.
Следующие классы Принять протокол SequenceType:
NSArray, NSDictionary, NSSet и больше.
CollectionType (Коллекция в Swift 3): Collection
- это SequenceType
, к которому можно получить доступ через индекс и определяет a startIndex
и endIndex
. Collection
- шаг за пределами последовательности; к отдельным элементам коллекции можно получить доступ несколько раз.
CollectionType
наследует от SequenceType
Следующие классы: Adopt CollectionType Protocol:
Array, Dictionary, Set, Range и больше.
Формируйте дополнительную информацию, вы можете увидеть this, this, и this