U_i不应该是T_i,如下图所示吗?
同样的错字(恕我直言)也在这里。
如果这不是错字,那么有人可以告诉我 T_i 的含义在哪里指定吗?
这不是一个错字,只是对变量的选择很差,并且对它们的绑定范围感到困惑:)
第一段,从“A parametrized”到“,a_n.”,U_i变量的绑定指的是类型参数,而T绑定的是实际的参数类型。例如,假设你有
val x : Map[Int, String]
你的 T 是 Map,你的 U_1 是 Int,U_2 是 String。
另一方面,第二段与前一段完全脱节。在这里,类型参数绑定到变量 T_1 ... T_n,参数类型未绑定到任何东西,并且您将 L_1 ... L_n 绑定到类型参数的下限和 U_1 ... U_n 的绑定到参数类型的上限。
在这种情况下,你有没有(这不会编译,只是举例):
val x : Map[T1 <: AnyRef, T2 >: Int]
然后您将 T1、T2 作为实际类型参数,U1 = AnyRef ,L2 = Int。
希望现在更清楚:)(但是是的,变量选择不佳)
看你是否理解,试着猜测第二个例子中的 U2 和 L1 是什么。提示:查看 Scala 的类型层次结构;)