3

我正在从 Swift文档中查看这种语言GeneratorType,但我很难理解它:

任何在单个序列上使用多个生成器(或 for...in 循环)的代码都应该静态知道特定序列是多通道的,因为它的具体类型是已知的,或者因为它被限制为 CollectionType。此外,生成器必须通过对序列的 generate() 方法的不同调用获得,而不是通过复制获得。

序列是“多遍”是什么意思?这种语言似乎很重要,但我找不到很好的解释。例如,我了解“多遍编译器”的概念,但我不确定这些概念是否相似或相关......

另外,我搜索了其他回答这个问题的帖子。我找到了这个,它在 C++ 上下文中做了以下声明:

复制其迭代器的算法与不复制其迭代器的算法之间的区别在于,前者被称为“多通道”算法,并且要求其迭代器类型满足 ForwardIterator,而后者是单通道并且只需要 InputIterator。

但我也不完全清楚它的含义,我不确定这个概念在 Swift 中是否相同。

任何比我聪明的人的任何见解都将不胜感激。

4

1 回答 1

3

“多遍”序列是可以通过for...in循环或使用任意数量的生成器(通过generate()构造)进行多次迭代的序列

文本解释说你会知道一个序列是多遍的,因为你

  • 知道它的类型(可能是你设计的类)或
  • 知道它符合CollectionType。(例如,集合和数组)
于 2015-01-21T00:26:16.910 回答