Вы не можете сделать под var
, но вы можете сделать его val
.
scala> import collection._
import collection._
scala> class IntervalMap[A, +B](implicit val ordering: Ordering[A]) {
| val underlying = SortedMap.empty[A, List[B]]
| }
defined class IntervalMap
В вашем примере var
определяет пару методов:
class IntervalMap[A, +B](implicit val ordering: Ordering[A]) {
def underlying_=(s: SortedMap[A, List[B]]) = // ...
def underlying: SortedMap[A, List[B]]) = // ...
}
Чтобы параметр типа B
отображался как на входе, так и на выходе, он должен быть инвариантным.