2015-01-21 70 views
0

我从雨燕GeneratorType文档看this language,我有一个很难理解它:什么是Swift中的多遍序列?

,超过单个序列使用多台发电机(或... in循环)的任何代码应该有由于其具体类型是已知的或者因为它受限于CollectionType,所以特定序列是多遍的静态知识。此外,必须通过对序列的generate()方法的不同调用来获取生成器,而不是通过复制。

这是什么意思序列是“多通”?这种语言看起来很重要,但我找不到一个好的解释。我明白,例如,“多通编译器”的概念,但我不确定这些概念是相似还是相关...

另外,我搜索了其他帖子回答这个问题。我发现this one,这使得下面的语句在C++方面:

复制了他们的迭代器和那些没有算法之间的区别是,前者被称为“多通道”算法,并要求其迭代器类型以满足ForwardIterator,而后者是单通道且只需要InputIterator。

但是我的意思并不完全清楚,我不确定这个概念在Swift中是否一样。

从那些比我更聪明的任何洞察力将不胜感激。

回答

1

A“多遍”序列是一个可经由被迭代过多次用于...在循环或通过使用任何数量的发电机(经由构造产生()

该文介绍了你会知道的顺序是多道,因为你

  • 知道它的类型(也许你设计一个类)或
  • 知道它符合CollectionType。 (例如,集和阵列)
+0

谢谢......我想我很难看出一个* not * multipass序列。什么是一个序列的例子,你只能迭代一次?什么会阻止你从一开始就重新开始? – 2015-01-21 01:28:14

+2

也许这是从网络接收到的令牌流?所有它必须是每个新项目是从一个非确定性的方式生成的前一个... – nielsbot 2015-01-21 03:44:32

+0

再次感谢。我没有想过流是一个序列,这对我有很大的帮助。 – 2015-01-22 23:18:04