类型构造函数上的Scala类型边界

时间:2011-06-27 12:36:39

标签: scala types

有人可以解释为什么以下不编译?我希望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 个答案:

答案 0 :(得分:9)

我认为你需要命名_参数。

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

作品。