【发布时间】:2019-09-01 20:30:47
【问题描述】:
我正在学习scala,这个问题可能很愚蠢,但是......为什么?
例如这样就可以了:
def matchList(ls: List[Int]): List[Int] = ls match {
case 1 :: rest => rest
case a :: b :: rest => (a + b) :: rest
case _ => ls
}
matchList: (ls: List[Int])List[Int]
但是带有类型参数的函数无法编译:
def matchList[T](ls: List[T]): List[T] = ls match {
case 1 :: rest => rest
case a :: b :: rest => (a + b) :: rest
case _ => ls
}
<console>:10: error: type mismatch;
found : T
required: String
case a :: b :: rest => (a + b) :: rest
为什么?
【问题讨论】: