是否可以以某种方式匹配返回类型A,如果它是例如一个int,做一个返回int的计算。 请参阅以下示例:
def test[A](a: A):A = a match{
case b: Int => b * 5
case _ => a
}
错误消息:
type mismatch; found : Int required: A
谢谢!
答案 0 :(得分:2)
您可以将返回更改为Any
def test[A](a: A):Any = a match{
case b: Int => b * 5
case _ => a
}
另一种选择是做instanceof
case b: Int => (b * 5).asInstanceOf[A]
答案 1 :(得分:0)
是:
def test(a : Int) = a * 5
def test[A](a : A) = a
Scala支持重载方法和基于类型的调度,因此在这种情况下,您不必诉诸模式匹配。