2
我試圖用擴展語義實現一種SortedMap。我試圖委託SortedMap作爲存儲,但無法避開方差約束:如何在委託另一個集合進行存儲時使用協方差實現集合?
class IntervalMap[A, +B](implicit val ordering: Ordering[A])
//extends ...
{
var underlying = SortedMap.empty[A, List[B]]
}
這是我得到的錯誤。我明白爲什麼我得到的錯誤(我明白方差)。我沒有得到的是如何實現這種類型的委派。是的,B上的協方差是必需的。
error: covariant type B occurs in contravariant position in type scala.collection.immutable.SortedMap[A,List[B]] of parameter of setter underlying_=