我对Scala中的泛型函数有疑问。假设我有一个像这样的简单函数(人为的例子):
def subList[A](list:List[A], start:Int, elementCap:Int): List[A] ={
为什么需要第一个[A]
?为什么我不能签名
def subList(list:List[A], start:Int, elementCap:Int): List[A] ={
答案 0 :(得分:2)
因为在编程语言中任何时候引用任何类型的变量,都需要在某处定义它。 A 是一种参数类型,也就是说它类似于变量,但它指的是一种类型。 A不是一个常数,对于某些其他上下文而言是已知的,因此它需要一个定义。
实际调用该方法时,将具体提供实际值。