在Swift中SequenceType和CollectionType有什么区别?

Ank*_*oel 29 swift

请解释之间的区别SequenceType,GeneratorTypeCollectionType在雨燕的编程语言.

另外,如果我实现我自己的数据结构,这将是使用的优势SequenceType,GeneratorTypeCollectionType协议?

Viv*_*kar 62

GeneratorType(Swift 3中的IteratorProtocol): 如果没有返回的元素,则Generators可以给出next某个序列的元素nil.Generators封装迭代状态和接口,以便在序列上进行迭代.

生成器通过提供单个方法来工作,即 - next(),它只是从底层返回下一个值sequence.

以下类采用GeneratorType协议:

DictionaryGenerator,EmptyGenerator,更多这里.


SequenceType(Swift 3中的序列): ASequence表示一系列值.Sequence是一个可以for...in循环迭代的类型.

基本上序列是发电机工厂; 知道如何为序列生成生成器的东西.

以下类采用SequenceType协议:

的NSArray,NSDictionary中,NSSet中更多.


CollectionType(在夫特3系列): Collection是一种SequenceType可通过下标被访问并且限定startIndexendIndex.Collection是超越序列的一步; 可以多次访问集合的各个元素.

CollectionType 继承自 SequenceType

以下类采用CollectionType协议:

数组,字典,设置,范围更多.


形成更多信息,您可以看到这个,这个这个