【发布时间】:2016-06-14 12:24:17
【问题描述】:
在 Scala 中使用过正则表达式后,我使用过 Iterators,但我不太了解这种兴趣。
我知道它有一个状态,如果我在它上面调用 next() 方法,它每次都会输出不同的结果,但我看不到我可以用它做什么,而 Iterable 不可能做到这一点.
而且它似乎不像 Akka Streams 那样工作(例如),因为下面的例子直接打印了所有的数字(没有像我期望的那样等待一秒钟):
lazy val a = Iterator({Thread.sleep(1000); 1}, {Thread.sleep(1000); 2}, {Thread.sleep(1000); 3})
while(a.hasNext){ println(a.next()) }
那么使用Iterators的目的是什么?
【问题讨论】:
-
我不知道你在这里问什么。你期望什么作为输出,你会得到什么? “我知道它有一个状态,如果我在它上面调用 next() 方法,它不会每次都输出不同的结果”是完全错误的。迭代器通常会在每次调用
next时返回不同的结果。 “使用 Iterable 是不可能的。” - 什么是不可能的?所以你似乎对迭代器是什么感到很困惑。请编辑您的问题,看看您是否可以更清楚地说明您的要求。 -
确实是一个了不起的问题! :)
-
@The Archetypal Paul:我想了解使用迭代器的目的。我对此一点也不困惑,但我不得不承认我的问题是(对不起我的英语)。我的意思是“它会”而不是“它不会”。我已经编辑了我的问题。
-
当前答案在回答您的问题方面表现如何?
-
迪玛的反应很完美,也是我所怀疑的。