2015-01-21 66 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