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