请解释Swift编程语言中SequenceType
、GeneratorType
和CollectionType
之间的区别.
此外,如果我正在实现自己的数据 struct ,那么使用SequenceType
、GeneratorType
或CollectionType
协议的优势是什么?
请解释Swift编程语言中SequenceType
、GeneratorType
和CollectionType
之间的区别.
此外,如果我正在实现自己的数据 struct ,那么使用SequenceType
、GeneratorType
或CollectionType
协议的优势是什么?
100 (101): Generators
可以给出某个序列的next
元素,如果没有元素,则返回nil
.Generators
封装迭代状态和用于序列上迭代的接口.
生成器的工作原理是提供一个方法,即–next()
,它只返回基础sequence
中的下一个值.
Following classes Adopt GeneratorType Protocol:
DictionaryGenerator,EmptyGenerator,更多here.
100 (101): A Sequence
代表一系列值.Sequence
是一种可以用for...in
循环进行迭代的类型.
本质上,序列是一个发电机工厂;知道如何为序列生成生成器的东西.
Following classes Adopt SequenceType Protocol:
NSArray、NSDictionary、NSSet和more.
100 (101): Collection
是可通过下标访问的SequenceType
,并定义了startIndex
和endIndex
.Collection
是序列之外的一步;可以多次访问集合的各个元素.
CollectionType
人继承了SequenceType
人
Following classes Adopt CollectionType Protocol:
Array、Dictionary、Set、Range和more.