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

此外,如果我正在实现自己的数据 struct ,那么使用SequenceTypeGeneratorTypeCollectionType协议的优势是什么?

推荐答案

100 (101): Generators可以给出某个序列的next元素,如果没有元素,则返回nil.Generators封装迭代状态和用于序列上迭代的接口.

生成器的工作原理是提供一个方法,即–next(),它只返回基础sequence中的下一个值.

Following classes Adopt GeneratorType Protocol:

DictionaryGeneratorEmptyGenerator,更多here.


100 (101): A Sequence代表一系列值.Sequence是一种可以用for...in循环进行迭代的类型.

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

Following classes Adopt SequenceType Protocol:

NSArrayNSDictionaryNSSetmore.


100 (101): Collection是可通过下标访问的SequenceType,并定义了startIndexendIndex.Collection是序列之外的一步;可以多次访问集合的各个元素.

CollectionType人继承了SequenceType

Following classes Adopt CollectionType Protocol:

ArrayDictionarySetRangemore.


形成更多信息,你可以看到thisthisthis

Swift相关问答推荐

防止NavigationLink自行返回导航视图

减go 用SWIFT struct 填充的NSCountedSet

SWIFT闭包使用的是陈旧的值,即使它是S@转义

它是RxSwift中直接用于可扩展视图的有效的可扩展BehaviorRelay值?

按SWIFT中每个ID的最大值进行筛选/排序

是否在核心数据中使用Uint?

无论玩家移动到视图内的哪个位置,如何使用 SpriteKit 让敌人向玩家emits 子弹?

在表单中对齐文本框

将 ArgumentParser 与 Swift 并发一起使用

关于变量的视图的 SwiftUI 生命周期

如何使用 ISO 国家代码(2 个字母)查找区域设置标识符

Swift 中的Combine和didSet有什么区别?

Swift在十进制格式中失go 精度

在 SwiftUI 中,如何在 UIView 内或作为 UIView 使用 UIHostingController?

如何快速判断设备方向是横向还是横向?

iOS Swift - 如何更改表格视图的背景 colored颜色 ?

在 Swift 中强制崩溃的最简单方法

如何在 iOS Swift 中进行多线程、并发或并行?

如何在 SwiftUI 中创建带有图像的按钮?

UITableView 布局在 push segue 和 return 上搞砸了. (iOS 8、Xcode beta 5、Swift)