Scala相当于Python的帮助()

时间:2013-07-08 22:03:45

标签: python scala equivalent

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

5 个答案:

答案 0 :(得分:4)

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

除非您使用具有自动完成且具有简短说明的eclipse。例如,在输入'array。'后,它将为您提供阵列的所有命令。

答案 1 :(得分:3)

我认为Tab完成是最接近Python帮助的东西。

@dcsobral在使用Scala文档和post时也有一个过时但仍然相关的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]  

答案 2 :(得分:1)

同样,IDEA有“Quick Documentation Look-up”命令,该命令适用于Scala以及Java(-Doc)JAR和源代码文档注释。

答案 3 :(得分:1)

sbt-man是用于查找scaladoc的sbt插件。 sbt console命令启动带有项目类和类路径依赖项的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. 

答案 4 :(得分:0)

在scala中,您可以尝试使用以下..(与python中的类似)。

python中的

help(RDD1)将为您提供rdd1的详细说明。

Scala> RDD1。[tab]

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