1
我想通过我有一个示例项目来学习斯卡拉。其中有一个变量记录定义为:斯卡拉 - 迭代器被'消耗'
val records: Iterator[Product2[K, V]]
它以不同的方法传递。我用探索的内容:
records.foreach(println)
然而,当我尝试打印再次使用这个迭代的内容,即使在连续的代码行,我没有得到任何结果。似乎迭代器被消耗。如何防止它发生,并能够探索迭代器的内容,而不会使其对代码的其余部分无用?
烨新
Iterator
,例如,调用'迭代器上的.toStream'('Stream'是'Iterable'的子类型)是获得可以重复遍历的结构的一种方法(然而,因为它是懒惰的,不会立即遍历第一个项目)。 –@Arne Claassen,有没有办法将** Iterator **转换为** Iterable **。我在问,因为我正在研究在整个类和特性中使用迭代器的项目,并且我不可能将它们全部更改为** Iterable **。 –
@HaseebJaved'Iterator'具有'.toIterable'或者甚至'toList','toVector'等等。唯一需要注意的是'Iterator'并没有被用于从一些_IO_源流式传输数据,因为它实现了它到一个内存中的'Traversable'被禁止 –