Ограничения типа Scala для конструктора типов - PullRequest
5 голосов
/ 27 июня 2011

Может кто-нибудь объяснить, почему следующее не компилируется? Я хочу, чтобы 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 Ответ

9 голосов
/ 27 июня 2011

Я думаю, вам нужно назвать параметр _.

scala> def x[A, BB[X] <: List[X]](p: BB[A]) {p: List[A]}

работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...