Scala新手在这里,
我正在使用stanford的主题建模工具包
它有一个LazyIterable[(String, Array[Double])]
我应该如何迭代这个可迭代的所有元素说it
来打印所有这些值?
我试过
这样做while(it.hasNext){
System.out.println(it.next())
}
给出错误
error: value next is not a member of scalanlp.collection.LazyIterable[(String, Array[Double])]
这是API来源 - > iterable_name - >
中的InferCVB0DocumentTopicDistributions
http://nlp.stanford.edu/software/tmt/tmt-0.4/api/edu/stanford/nlp/tmt/stage/package.html
答案 0 :(得分:2)
基于its source code,我可以看到LazyIterable
实现了标准的Scala Iterable
接口,这意味着您可以访问所有Scala集合实现的所有标准高阶函数 - 例如map
,flatMap
,filter
等
打印所有值时您感兴趣的是foreach
。所以试试这个(不需要while循环):
it.foreach(println)
答案 1 :(得分:1)
看起来像方法调用问题,只需查看LazyIterable的源代码,查看第46行
override def iterator : Iterator[A]
当你得到一个LazyIterable实例时,调用迭代器方法,然后就可以做你想做的了。