2011-07-20 74 views
28

首先爲內置的文檔,也爲我自己的代碼。如何從repl訪問scala文檔?

具體而言,我想獲取類似於python的信息,您可以調用help()方法或對象來獲取有關打印到repl中的對象的信息。

+0

也看到http://stackoverflow.com/questions/4160745/is-there-a-command-line-program-to-lookup-scaladoc –

+2

這個問題*不是*問題4160745的完全重複。這是關於Scala REPL而不是命令行的問題。 – paradigmatic

回答

21

Scaladocs生成爲HTML,因此您不希望它們出現在REPL窗口中。但是,您可能想要從REPL的瀏覽器中加載文檔。你可以通過創建你自己的方法,像這樣(這個需要一個實例,你可以有它採取Class[A]一個實例,而不是,如果你喜歡):

def viewdoc[A](a: A) { 
    val name = a.asInstanceOf[AnyRef].getClass.getName 
    val url = "http://www.scala-lang.org/api/current/index.html#"+name 
    val pb = new ProcessBuilder("firefox",url) 
    val p = pb.start 
    p.waitFor 
} 

如果你想獲得額外的高明,你可以解析這個名字,將Javadocs的Web瀏覽器指向Java類,Scaladocs指向Scala類,以及指向你的類的文檔。您也可能希望使用本地來源,而不是來自網絡的API。但我用這個,所以你可以嘗試

scala> viewdoc(Some(1)) 
+1

只需簡單說明:'firefox'必須位於路徑中,並且必須在Windows窗口中添加'.exe'。 –

+1

@ michael.kebe - 是的,你必須安裝firefox,或使用命令行中的其他網絡瀏覽器等。:) –

+0

這很酷,但並非真的是我正在尋找 - 我已更新我的問題與更多細節。 –