如何从 repl 访问 scala 文档?

发布于 2024-11-25 11:06:56 字数 100 浏览 1 评论 0原文

首先对于内置文档,以及我自己的代码。

具体来说,我想要获取类似于在 python 中如何对方法或对象调用 help() 的信息,以获取打印到 repl 中的该对象的信息。

First of all for the built in docs, and also for my own code.

Specifically, I want to get information similar to how in python you can call help() on a method or object to get information on just that object printed into the repl.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

与之呼应 2024-12-02 11:06:56

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))

Scaladocs are generated as HTML, so you don't want them appearing in the REPL window. You might want to load docs in a browser from the REPL, however. You can do that by creating your own method like so (this one takes an instance; you could have it take an instance of Class[A] instead, if you prefer):

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
}

If you want to get extra-clever, you could parse the name to point the web browser at Javadocs for java classes and Scaladocs for Scala classes and wherever you have your documentation for your classes. You also probably want to use a local source, file:///my/path/to/docs/index.html# instead of the API from the web. But I used this so you can try out

scala> viewdoc(Some(1))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文