11

我精通 Python,但在 Scala 上是个菜鸟。我正要在 Scala 中编写一些肮脏的实验代码,并且想到如果 Scala 有一个像help()Python 那样的函数会非常方便。例如,如果我想查看 Scala 的内置方法,Array我可能想键入类似 的内容help(Array),就像我help(list)在 Python 中键入一样。Scala 是否存在这样的事情?

4

5 回答 5

5

我不知道有一个内置的,但您应该使用Scaladocs来查找相同的信息。

除非您使用具有自动完成功能并带有简短说明的 eclipse。例如,它会在键入“array.”后为您提供数组的所有命令。

于 2013-07-08T22:06:09.037 回答
5

我认为制表符补全是最接近 Python 帮助的东西。

@dcsobral还有一篇过时但仍然相关的帖子,关于使用 Scala 文档和Scalex,类似于 Hoogle for Haskell。

这是Object Array.

scala> Array.
apply                  asInstanceOf           canBuildFrom           concat                 copy                   
empty                  emptyBooleanArray      emptyByteArray         emptyCharArray         emptyDoubleArray       
emptyFloatArray        emptyIntArray          emptyLongArray         emptyObjectArray       emptyShortArray        
fallbackCanBuildFrom   fill                   isInstanceOf           iterate                newBuilder             
ofDim                  range                  tabulate               toString               unapplySeq   

这是针对类上的方法的Array。不知道为什么这之后不显示价值成员a.

scala> val a = Array(1,2,3)
a: Array[Int] = Array(1, 2, 3)

scala> a.
apply          asInstanceOf   clone          isInstanceOf   length         toString       update  

尽管有时方法上的选项卡完成有点令人生畏,但它会显示方法签名。这是为了Array.fill

def fill[T](n1: Int, n2: Int)(elem: => T)(implicit evidence$10: reflect.ClassTag[T]): Array[Array[T]]                                                   
def fill[T](n1: Int, n2: Int, n3: Int)(elem: => T)(implicit evidence$11: reflect.ClassTag[T]): Array[Array[Array[T]]]                                   
def fill[T](n1: Int, n2: Int, n3: Int, n4: Int)(elem: => T)(implicit evidence$12: reflect.ClassTag[T]): Array[Array[Array[Array[T]]]]                   
def fill[T](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(elem: => T)(implicit evidence$13: reflect.ClassTag[T]): Array[Array[Array[Array[Array[T]]]]]   
def fill[T](n: Int)(elem: => T)(implicit evidence$9: reflect.ClassTag[T]): Array[T]  
于 2013-07-09T02:08:20.463 回答
2

sbt-man是一个用于查找 scaladoc 的 sbt 插件sbtconsole命令使用项目类和类路径上的依赖项启动 Scala REPL

例子:

man Traversable /:
[man] scala.collection.Traversable
[man] def /:[B](z: B)(op: (B ⇒ A ⇒ B)): B
[man] Applies a binary operator to a start value and all elements of this
collection, going left to right. Note: /: is alternate syntax for foldLeft;
z /: xs is the same as xs foldLeft z. Note: will not terminate for infinite-
sized collections. Note: might return different results for different runs,
unless the underlying collection type is ordered. or the operator is
associative and commutative. 
于 2013-07-09T03:34:03.597 回答
1

同样,IDEA 有其“快速文档查找”命令,该命令适用于 Scala 以及 Java (-Doc) JAR 和源代码文档注释。

于 2013-07-09T01:18:51.693 回答
0

在 scala 中,您可以尝试使用以下 ..(类似于我们在 python 中使用的)..

python 中的 help(RDD1) 将为您提供包含完整详细信息的 rdd1 描述。

Scala > RDD1.[选项卡]

在点击选项卡时,您将找到指定 RDD1 可用的选项列表,类似于您在 eclipse 中找到的选项。

于 2019-05-01T20:08:05.913 回答