10

Scala REPLでは、値型を見つけることができます。

    scala> val x = 1
    x: Int = 1

    scala> :t x
    Int

しかし、ScalaREPLは関数の型情報を表示しません。

    scala> def inc(x:Int) = x + 1
    inc: (x: Int)Int

scala> :t inc
<console>:9: error: missing arguments for method inc;
follow this method with `_' if you want to treat it as a partially applied function
       inc
       ^
<console>:9: error: missing arguments for method inc;
follow this method with `_' if you want to treat it as a partially applied function
          inc
          ^

Scala REPLで関数型を見つける方法は?

4

2 に答える 2

26

提案に従うことはかなりうまくいくでしょう:

:t inc _
Int => Int

もう少し詳しく説明すると、これが必要な理由は、Scalaが、JVMでネイティブサポートを備えているがファーストクラスではない「メソッド」と、インスタンスとして扱われ、表示される「関数」との区別を維持しているためですFunctionX。 JVMによるオブジェクトとして。末尾の下線を使用すると、前者が後者に変換されます。

于 2013-03-25T09:48:02.460 に答える
4

メソッドの名前を書いてタブを押すことができます。

Stream.fill<tab>

あなたにあげる:

def fill[A](n1: Int,n2: Int,n3: Int)(elem: => A): 
scala.collection.immutable.Stream[scala.collection.immutable.Stream[scala.collection.immutable.Stream[A]]]
def fill[A](n1: Int,n2: Int,n3: Int,n4: Int)(elem: => A): scala.collection.immutable.Stream[scala.collection.immutable.Stream[scala.collection.immutable.Stream[scala.collection.immutable.Stream[A]]]]
def fill[A](n1: Int,n2: Int)(elem: => A): scala.collection.immutable.Stream[scala.collection.immutable.Stream[A]]
def fill[A](n1: Int,n2: Int,n3: Int,n4: Int,n5: Int)(elem: => A): scala.collection.immutable.Stream[scala.collection.immutable.Stream[scala.collection.immutable.Stream[scala.collection.immutable.Stream[scala.collection.immutable.Stream[A]]]]]
override def fill[A](n: Int)(elem: => A): scala.collection.immutable.Stream[A]
于 2018-02-07T15:55:43.980 に答える