簡體   English   中英

通用類型的Scala匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM