在做了一些研究之后,我还没有找到任何具体的确认,但似乎序列协议的Generator关联类型已经重命名为迭代器。这是对的吗?
我无法在有关协议GeneratorType或关联类型Generator的swift API参考资料中找到任何内容。我只是看到人们在博客上写下它。
所以我的问题是生成器和迭代器在swift中引用完全相同的概念吗?
答案 0 :(得分:2)
生成器和迭代器是否在Swift中引用完全相同的概念?
总之;是
正如the evolution proposal中提到的Swift 3' reamification'标准库:
从协议名称中删除
Type
后缀。在一些特殊情况下,这意味着添加Protocol
后缀以避开主要类型名称[...]。生成器的概念在所有API中重命名为迭代器。
因此,GeneratorType
协议已重命名为IteratorProtocol
。
SequenceType
协议已重命名为Sequence
,并且看起来像这样:
public protocol SequenceType {
associatedtype Generator : GeneratorType
// ...
func generate() -> Generator
// ...
}
看起来像这样:
public protocol Sequence {
associatedtype Iterator : IteratorProtocol
// ...
func makeIterator() -> Iterator
// ...
}