2017-12-27 7 views
0

私はここからクラス定義と2つの関数定義スカラーのジェネリック型の有無にかかわらずインスタンスを作成するのは何ですか?

class Queue[T] (
    private val leading: List[T] 
    private val trailing: List[T] 
){} 

def a[T](xs: T*) = new Queue[T](xs.toList, Nil) 

def b[T](xs: T*) = new Queue(xs.toList, Nil) 

を持って、クラスはジェネリック型で定義され、また、2機能がありませんされています。

ここでは、2つの機能の違いは、インスタンスを作成するときです。

はうまく動作し、エラーは次の式を使用して作成されていない両方:

a(1,2,3,4) 
b(1,2,3,4) 

a[Int](1,2,3,4) 
b[Int](1,2,3,4) 

しかし、私は違いが何であるかを見つけ出すことができませんでした。

+0

あなたが 'Queue'と' b'の型パラメータに異なる名前を選んだ場合、これについて話すほうが簡単でしょう。 –

答えて

4

ありません。クラスQueueのタイプパラメータTは、メソッドbのタイプパラメータTであると推定されます。

関連する問題