【发布时间】:2019-03-12 02:31:38
【问题描述】:
我想在 Scala 中这样做:
def sum[T](seq: Seq[T]): T =
seq match {
case last :: Nil => last
case head :: tail => head + sum(tail)
}
但是 Scala 抱怨 sum(tail) 上存在类型不匹配:它期待 String 但得到了 T - 这听起来当然不对。我调查了一下,看起来 Scala 的类型推断系统只能推断出tail 的类型是Seq[Any]。是这个问题吗?在 Scala 中编写此代码的正确方法是什么?
【问题讨论】: