【发布时间】:2011-10-09 18:04:37
【问题描述】:
首先是内置文档,还有我自己的代码。
具体来说,我想获取类似于在 python 中如何在方法或对象上调用 help() 以获取有关打印到 repl 中的对象的信息的信息。
【问题讨论】:
-
这个问题不是问题 4160745 的完全重复。这是一个关于 Scala REPL 而不是命令行的问题。
标签: scala read-eval-print-loop
首先是内置文档,还有我自己的代码。
具体来说,我想获取类似于在 python 中如何在方法或对象上调用 help() 以获取有关打印到 repl 中的对象的信息的信息。
【问题讨论】:
标签: scala read-eval-print-loop
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 浏览器指向 java 类的 Javadocs 和 Scala 类的 Scaladocs 以及任何您拥有类文档的地方。您可能还想使用本地源 file:///my/path/to/docs/index.html# 而不是来自网络的 API。但是我用了这个,所以你可以试试
scala> viewdoc(Some(1))
【讨论】:
firefox 必须在路径中,您必须在 Windows 框中添加 .exe。
Mac OS X中的Google Chrome,使用这个ProcessBuilder命令val pb = new ProcessBuilder("open", "-a", "Google Chrome", url)