我有这两个隐式
trait A[T] {
val name: String
}
trait B
object A {
implicit def product[T <: Product] = new A[T] {
override val name: String = "product"
}
implicit def childOfB[T <: Product with B] = new A[T] {
override val name: String = "child of B"
}
}
如果我尝试找到A[C]
where C
is的隐式实例
case class C() extends B
childOfB
将被选中。
我知道这是合乎逻辑的,但为什么会发生这种情况?我在任何地方都找不到它的记录。