Swift中的多通道序列是什么?

Swift中的多通道序列是什么?,swift,sequence,multipass,Swift,Sequence,Multipass,我正在查看SwiftGeneratorType文档,我很难理解它: 任何在单个序列上使用多个生成器(或用于…in循环)的代码都应该静态地知道特定序列是多过程的,因为它的具体类型是已知的,或者因为它被约束为CollectionType。此外,必须通过对序列的generate()方法的不同调用而不是通过复制来获取生成器 序列是“多通道”意味着什么?这种语言似乎很重要,但我找不到很好的解释。例如,我理解“多通道编译器”的概念,但我不确定这些概念是否相似或相关 此外,我还搜索了其他回答这个问题的帖子。我

我正在查看Swift
GeneratorType
文档,我很难理解它:

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

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

此外,我还搜索了其他回答这个问题的帖子。我发现,在C++上下文中,下面的语句是:

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

但我也不完全清楚这一点的含义,我也不确定Swift中的概念是否相同

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

一个“多重传递”序列可以通过for…in循环或使用任意数量的生成器(通过generate()构造)进行多次迭代

本文解释说,由于您

  • 了解其类型(可能是您设计的类)或
  • 知道它符合CollectionType。(例如,集合和数组)

谢谢……我想我很难想象一个不是多路径的序列。您只能迭代一次的序列的示例是什么?什么会阻止你从头开始呢?也许是你从网络上收到的代币流?它所需要的是,每一个新项目都是以一种不确定的方式从上一个项目生成的……再次感谢。我没有想到流是一个序列,这对我有很大帮助。