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

时间:2015-06-01 04:58:27

标签: swift

请解释Swift编程语言中SequenceTypeGeneratorTypeCollectionType之间的区别。

另外,如果我实现自己的数据结构,那么使用SequenceTypeGeneratorTypeCollectionType协议的优势是什么?

1 个答案:

答案 0 :(得分:60)

GeneratorTypeIteratorProtocol in Swift 3): Generators可以提供某个序列的next元素,如果没有元素的话返回nilGenerators封装迭代状态和接口,以便在序列上进行迭代。

生成器通过提供单个方法来工作,即 - next(),它只返回基础sequence的下一个值。

以下课程采用GeneratorType协议:

DictionaryGeneratorEmptyGenerator,更多here

SequenceTypeSequence in Swift 3Sequence代表一系列值。 Sequence是一种可以使用for...in循环进行迭代的类型。

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

以下课程采用序列类型协议:

NSArrayNSDictionaryNSSetmore

CollectionTypeCollection in Swift 3 Collection是一个SequenceType,可以通过下标访问并定义startIndexendIndexCollection是超越序列的一步;可以多次访问集合的各个元素。

CollectionType继承自SequenceType

以下课程采用CollectionType协议:

ArrayDictionarySetRangemore

您可以查看更多信息thisthisthis