2016-05-02 7 views
0

Ich bin neu in scala und kämpfen mit der Dokumentation ein wenig. Ich schaute auf ein Stück Code in der spark Codebasis (Kosinusähnlichkeit für RowMatrix) und sah, dass sie Iterator.tabulate verwenden. Nicht wissend, welche Funktion ich in der scala API docs suchte, nur um herauszufinden, die Funktion existiert nicht. Außer dass es existiert, weil ich es in der repl verwenden kann (hmm, vielleicht schaue ich mir die falsche API docs version an ... nein, das ist die aktuelle Version).scala Begleiter Objektvorlagen (Iterator.tabulate)

Nach ein wenig Suche finde ich heraus, dass tabulate (mindestens) in scala.collection.generic.SeqFactory und scala.collection.generic.TraversableFactory definiert ist. Diese beiden erscheinen jedoch nicht als verbunden im Abhängigkeitsgraphen. Ich kann keinen Weg zwischen den beiden finden, und daher kann man - aus dem Blick auf die API-Dokumente - nicht wirklich wissen, dass .tabulate überhaupt existiert.

Also die Frage ist: Wie finden Sie .tabulate und es ist Dokumentation von Blick auf die API-Dokumentation für die Klasse (etwa Iterator oder Seq). Muss ich mich nur googlen oder gibt es einen magischen Knopf in der Scala-Dokumentation, der das Ding erscheinen lässt?

Dies scheint nicht nur auf .tabulate beschränkt zu sein, aber ein häufigeres Problem (zumindest für mich), Bibliothek Bibliothek Code Funktionen scheinen scheinen, die in der API nie erwähnt werden. Ein weiteres Beispiel ist

org.apache.spark.mllib.linalg.distributed.RowMatrix.toBreeze 

Ich weiß noch nicht, ob diese Funktion vorhanden ist, scheint ein Code, es zu benutzen, aber ich kann keine Dokumentation darüber finden.

Antwort

1

Im Scala-Quellcode ist die gesamte Logik Iterator in einer Datei definiert Iterator.scala. Die Funktion tabulate, die Sie suchen, ist in object Iterator in Scala API definiert, Sie suchen nach trait Iterator, deshalb können Sie es nicht finden.

In der rechten Ecke doc können Sie auf Objekt Iterator wechseln und hier finden Sie [email protected] util-Funktion finden.

+0

ah, ich wusste, dass es so einfach sein musste. Ich dachte, das "O" und "T" zeigten nur, dass es sowohl ein Objekt als auch ein Merkmal ist. Ich habe nicht einmal versucht, sie anzuklicken, nicht das beste UI-Design aller Zeiten. Habe gerade bemerkt, dass die obere rechte Ecke eine entsprechende Dokumentation hat. –

Verwandte Themen