Scala の学習を開始し、コンソールでメソッド シグネチャをすばやく確認したいと考えています。たとえば、Haskell では次のようにします。
Prelude> :t map
map :: (a -> b) -> [a] -> [b]
これは、マップ関数のシグネチャを明確に示しています。つまり、次のようになります。
- aを受け取りbを返す関数
- のリスト
そして戻る
- bのリスト
これは、マップ関数がリストの各要素に関数を適用することにより、 aのリストをbのリストに変換するという結論につながります。
Scalaで同様の方法でメソッドタイプを取得する方法はありますか?
アップデート:
Federico Dal Maso の回答を試して、これを取得する
scala> :type Array.fill
<console>:8: error: ambiguous reference to overloaded definition,
both method fill in object Array of type [T](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(elem: => T)(implicit evidence$13: scala.reflect.ClassManifest[T])Array[Array[Array[Array[Array[T]]]]]
and method fill in object Array of type [T](n1: Int, n2: Int, n3: Int, n4: Int)(elem: => T)(implicit evidence$12: scala.reflect.ClassManifest[T])Array[Array[Array[Array[T]]]]
match expected type ?
Array.fill
明らかに、fill メソッドがオーバーロードされており、:type はどのオーバーロードを表示するかを決定できません。すべてのメソッド オーバーロードの型を表示する方法はありますか?