2013-07-08 23 views
5

我精通Python,但在Scala是noob。我即將在Scala中編寫一些髒實驗代碼,並且認爲如果Scala在Python中具有像help()這樣的函數,它將非常方便。例如,如果我想查看Scala Array的內置方法,則可能需要輸入類似help(Array)的內容,就像我在Python中輸入help(list)一樣。斯卡拉是否存在這樣的事情?Scala相當於Python的幫助()

+1

tab完成在REPL:在SBT console命令與工程類和依賴的類路徑

實例啓動斯卡拉REPL? – sschaef

回答

4

我不知道一個內置的,但你應該使用Scaladocs找到相同的信息。

除非你使用帶有簡短說明的自動完成的eclipse。例如,它會在輸入'array'後給你數組的所有命令。

+0

謝謝!我不確定如何使用Scaladocs,但我會發現。 – Ray

+0

我通常做的只是Google的方法和scaladocs。第一對夫婦的鏈接之一將有你在找什麼。 – brebs

1

同樣,IDEA有其「快速文檔查找」命令,該命令適用於Scala以及Java(-Doc)JAR和源代碼文檔註釋。

3

我認爲選項卡完成是最接近Python的幫助。

還有一個日期但仍然相關的使用Scala文檔的@dcsobral的post和與Hoogle for Haskell類似的Scalex

這是ObjectArray中的選項卡完成。

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] 
+0

製表符完成不會通過implicits添加成員。然而,對於我來說,tabb往往比scaladoc更容易(想到反思api)。 –

+0

Hmmm選項卡的完成看起來不如Python的'help()'優雅,但我想它符合其目的。謝謝! – Ray

1

sbt-mansbt插件用於查找scaladoc。

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.