请说明Swift编程语言中SequenceType,GeneratorType和CollectionType之间的区别.
另外,如果我正在实现我自己的数据结构,那么使用SequenceType,GeneratorType或CollectionType协议会有什么优势?
GeneratorType(
IteratorProtocol in Swift 3):如果没有元素返回nil,发生器可以给出某个序列的下一个元素.发生器封装迭代状态和接口,用于迭代序列.
一个生成器通过提供一个单一的方法,即 – next(),它只是从底层的序列中返回下一个值.
以下类采用GeneratorType协议:
DictionaryGenerator,EmptyGenerator,here.
SequenceType(Sequence in Swift 3):序列表示一系列值. Sequence是一个可以用for … in循环迭代的类型.
本质上是一个发电机工厂;知道如何使序列发生器的东西.
以下类采用SequenceType协议:
NSArray,NSDictionary,NSSet和more.
CollectionType(Collection in Swift 3):Collection是一个可以通过下标访问的SequenceType,并定义了一个startIndex和endIndex.收藏是超越序列的一步;集合的各个元素可以被多次访问.
CollectionType继承自SequenceType
以下课程采用CollectionType协议: