我对scala还不熟悉,对文档还有点纠结。我查看了spark代码库中的一段代码(RowMatrix的余弦相似性),并看到它们使用Iterator.tabulate。不知道这个函数是什么,我在scala文档中查看了它,结果发现这个函数不存在。除了它确实存在,因为我可以在repl中使用它(嗯,也许我看错了API文档版本.不,这是目前的版本)。
经过一些搜索,我发现tabulate是在scala.collection.generic.SeqFactory和scala.collection.generic.TraversableFactory中定义的(至少)。然而,这两者在依赖关系图中似乎没有连接。我在这两者之间找不到任何路径,因此,通过查看API文档,我无法真正知道.tabulate甚至存在。
因此,问题是:如何通过查看类的API文档(例如.tabulate或Seq)找到Iterator及其文档。我是否只需要用谷歌绕过它,还是scala文档中有一些神奇的按钮会让事情出现呢?
这似乎并不局限于.tabulate,而是一个更常见的问题(至少对我而言),查看库代码函数似乎存在于API中从未提及过。另一个例子是
org.apache.spark.mllib.linalg.distributed.RowMatrix.toBreeze我仍然不知道这个函数是否存在,有些代码似乎使用它,但是我找不到任何关于它的文档。
发布于 2016-05-02 14:14:37
在Scala源代码中,定义在一个文件Iterator.scala中的所有Iterator逻辑。您要寻找的函数tabulate是在Scala中的object Iterator中定义的,您可以通过trait Iterator进行搜索,所以这就是为什么您找不到它的原因。
在文档的右端,您可以切换到对象迭代器,在这里您可以找到Iterator$@tabulate util函数。
https://stackoverflow.com/questions/36983602
复制相似问题