为什么不隐含未找到,即使在像以下那样微不足道的事情中:
class Wrapper[+A](data: Vector[A]) {
def sum[B >: A](implicit num: Numeric[B]) = data.sum
}
无法编译,无需手动将num
传递给data.sum
答案 0 :(得分:2)
implicit parameters are inferred after any type arguments are inferred
指出data.sum
。我相信这就是问题所在。
Typer推断A
- Numeric[A]
的最具体参数,然后在范围内查找隐式Numeric[B]
。他无法用Numeric
替换它,因为{{1}}是不变的。