0
我用case class Equals[A >: B <: B, B]
检查类型等价,例如,为什么的Equals [A <: B >:B,B]不编译
scala> Equals[Int, Int]
res0: Equals[Int,Int] = Equals()
scala> Equals[Int, String]
<console>:10: error: type arguments [Int,String] do not conform to method apply's type parameter bounds [A >: B <: B,B]
Equals[Int, String]
但是,当我重新申报等号案例类为:
scala> case class Equals[A <: B >: B, B]
<console>:1: error: ']' expected but '>:' found.
case class Equals[A <: B >: B, B]
我想知道为什么[A >: B <:B, B]
有效,但[A <: B >: B, B]
没有。
它看起来像在第一种情况下,编译器只是忽略'B <:B'部分...... – Ashalynd