0
我有一個特質和幾個案例類擴展了這個特點。案例類返回產品而不是實際類型
sealed trait Bird
case class Eagle(age: Int) extends Bird
case class Sparrow(price: Double) extends Bird
如果我做了什麼,我會希望返回特質的類型,像
val result = "test" match {
case s:String if s startsWith "t" => Eagle(5)
case _ => Sparrow(2)
}
我得到這個,而不是類型Product
。
> result: Product with Serializable with Bird = Eagle(5)
我明白Product
是所有案例類擴展的東西。但我不怎麼處理Product
,我怎麼能得到Bird
甚至Eagle
呢?