Scala函数生成器

Scala函数生成器,scala,generator,Scala,Generator,我有来自JavaAPI的生成函数,Java代码如下 val iter = dict.getIndexWordIterator(typeWord) while (iter.hasNext){ val witer = iter.next().getWordIDs() //witer: List[..] else finish .. //make common list from all witer } 我想为所有这些代码和请求编写生成器 最后一步是可选的——您可以让集合保持惰

我有来自JavaAPI的生成函数,Java代码如下

val iter = dict.getIndexWordIterator(typeWord)

while (iter.hasNext){ 
    val witer = iter.next().getWordIDs() //witer: List[..] else finish
    .. //make common list from all  witer
}
我想为所有这些代码和请求编写生成器
最后一步是可选的——您可以让集合保持惰性,并在一段时间后严格执行它

我尝试从生成的函数中获取生成器并对其进行处理。我不知道福在这里干什么,为什么。x@user2233374所以你对获得前N个结果不感兴趣?然后放弃take步骤,您将得到
iter.flatMap(\u getWordIDs)。toArray
iter不是Seq。它是仅具有“next”和“hasNext”方法的对象。如果iter是
java.util.Iterator
我写的第一行就可以解决这个问题,那么就不可能编译“iter.flatMap(_getWordIDs)”@user2233374issue@user2233374下面是最简单的示例:(点击绿色按钮以获得结果)
(for(x <- 1 to 1000000; if iter.hasNext) yield iter.next.getWordIDs).flatten
import scala.collection.JavaConversions._ // so we can treat java iterator as scala one
iter.take(1000000).flatMap(_.getWordIDs).toArray // or to something more suitable to you