[英]Scala match on generic type
是否有可能在返回類型A上以某種方式匹配,如果它是例如int,則執行返回int的計算。 請參閱以下示例:
def test[A](a: A):A = a match{
case b: Int => b * 5
case _ => a
}
錯誤消息:
type mismatch; found : Int required: A
謝謝!
你可以改回Any
def test[A](a: A):Any = a match{
case b: Int => b * 5
case _ => a
}
另一種選擇是做instanceof
case b: Int => (b * 5).asInstanceOf[A]
是:
def test(a : Int) = a * 5
def test[A](a : A) = a
Scala支持重載方法和基於類型的調度,因此在這種情況下,您不必訴諸模式匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.