2017-12-27 291 views
0

我有一個類定義和兩個函數定義在scala中使用或不使用泛型類型創建實例有什麼不同?

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) 

從這裏,類與泛型類型定義,以及兩個函數的作用。

但是在這裏,兩個函數的區別在於創建實例時。

工作都很好,沒有錯誤與下面的表達式創建:

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

相關問題