Scala生成器功能

时间:2013-10-31 20:35:03

标签: scala generator

我从Java API生成函数,Java代码看起来像

val iter = dict.getIndexWordIterator(typeWord)

while (iter.hasNext){ 
    val witer = iter.next().getWordIDs() //witer: List[..] else finish
    .. //make common list from all  witer
}

我想为所有这些代码编写生成器,为'for'请求'< - '编写内部 所以

(for(x <- 1 to 1000000; if iter.hasNext) yield iter.next.getWordIDs).flatten

可以帮助,但对我来说这是丑陋和愚蠢的。是否可以更聪明地做到这一点?

1 个答案:

答案 0 :(得分:0)

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

最后一步是可选的 - 你可以保持你的收藏懒惰,并在一段时间后严格把它