4

好奇心から、私は以下を実行しようとしました:

def someFun[_](a:Int) = a

驚いたことに、エラーや警告は発行されず、期待どおりに実行されます(これは私が思うに問題ありません)が、コンパイラーが型パラメーターの冗長性を理解しないのは正常であるか、おそらくそれを可能にする何かを意味します(意味的に?)これとは異なります:

def someFun(a:Int) = a
4

1 に答える 1

9

コンパイラはこれを生成します:

def someFun(a: Int): Int = a;

しかし、これはコンパイラがこれが未使用であることを認識しているからではなく、型の消去が原因です。-printコンパイラのオプションでこのようなことを確認できます。未使用の型パラメータであるため、これが機能することも驚くべきことではありません。

于 2012-06-08T06:42:40.093 に答える