Границы типа Scala для конструктора типов
Может кто-нибудь объяснить, почему следующее не компилируется? Я хочу чтобы BB[A]
также List[A]
, Тело метода только поддерживает это представление.
scala> def x[A, BB[_] <: List[_]](p: BB[A]) {p: List[A]}
<console>:8: error: type mismatch;
found : BB[A]
required: List[A]
def x[A, BB[_] <: List[_]](p: BB[A]) {p: List[A]}
^
1 ответ
Решение
Я думаю, вам нужно назвать параметр _.
scala> def x[A, BB[X] <: List[X]](p: BB[A]) {p: List[A]}
работает.