如何从repl访问scala文档?

时间:2011-07-20 20:55:50

标签: scala read-eval-print-loop

首先是内置文档,也是我自己的代码。

具体来说,我希望获得类似于python的信息,你可以在方法或对象上调用help()来获取有关打印到repl中的对象的信息。

1 个答案:

答案 0 :(得分: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
}

如果你想变得更聪明,你可以解析名称,将Web浏览器指向Javadocs for java classes,Scaladocs指向Scala类,以及你的类文档。您可能还想使用本地来源file:///my/path/to/docs/index.html#而不是来自网络的API。但是我用这个你可以试试

scala> viewdoc(Some(1))