2013-07-08 6 views
5

私はPythonに堪能ですが、Scalaではnoobです。私はScalaに実験コードを書こうとしていますが、ScalaがPythonでhelp()のような関数を持っていれば、本当に便利だろうと考えていました。たとえば、Scalaの組み込みメソッドを見たいと思ったらArrayhelp(Array)のようなものを入力したいと思うかもしれません。ちょうど私がhelp(list)をPythonで入力するのと同じです。 Scalaにはそういうことがありますか?ScalaのPythonのヘルプ()

+1

REPLでタブ補完:SBT consoleコマンドは、例

クラスパス上のプロジェクトのクラスと依存関係を持つScalaのREPLを起動しますか? – sschaef

答えて

4

私は1つの組み込みについてはわかりませんが、同じ情報を見つけるにはScaladocsを使用してください。

簡単な説明で自動完成したeclipseを使用していない限り、たとえば、 'array'と入力した後、配列のすべてのコマンドが表示されます。

+0

ありがとう! Scaladocsの使い方はまだ分かりませんが、私は見つけます。 – Ray

+0

私が通常やっているのは、Googleのメソッドとscaladocsだけです。最初のカップルのリンクの1つがあなたが探しているものを持っています。 – brebs

1

同様に、IDEAには、ScalaとJava(-Doc)JARおよびソースコードのドキュメントコメントに対応する「クイックドキュメンテーションルックアップ」コマンドがあります。

3

タブの補完は、Pythonのヘルプに最も近いものだと思います。

日付は付けられていますが、Scalaのドキュメントでは@dcsobralのpost、そしてHaskellの場合はHoogleと似ている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

タブ補完は暗黙のうちに追加されたメンバーを行いません。しかし、私にとっては、タブ操作はscaladocよりも簡単です(反射apiが気になります)。 –

+0

Hmmmタブの補完は、Pythonの 'help()'よりもあまり優雅ではないようですが、目的を果たしていると思います。ありがとうございました! – Ray

1

sbt-manですscaladocを検索するためのsbtプラグインです。

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. 
関連する問題