Подтвердить что ты не робот

В чем разница между SequenceType и CollectionType в swift?

Объясните разницу между SequenceType, GeneratorType и CollectionType на языке программирования Swift.

Кроме того, если я реализую свою собственную структуру данных, что было бы преимуществом при использовании протоколов SequenceType, GeneratorType или CollectionType?

4b9b3361

Ответ 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