在scala中使用或不使用泛型类型创建实例有什么区别?

时间:2017-12-27 14:45:25

标签: scala generics

我有一个类定义和两个函数定义

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)

从这里开始,class被定义为泛型类型,并且还有两个函数。

但是在这里,两个函数之间的区别在于创建实例。

两者都运行良好,并且没有使用以下表达式创建错误:

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

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

但是,我无法弄清楚区别是什么。

1 个答案:

答案 0 :(得分:4)

没有。类UserViewModel的类型参数T将被推断为方法Queue的类型参数T