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