3

U_i不应该是T_i,如下图所示吗?

同样的错字(恕我直言)也在这里

在此处输入图像描述

如果这不是错字,那么有人可以告诉我 T_i 的含义在哪里指定吗?

4

1 回答 1

3

这不是一个错字,只是对变量的选择很差,并且对它们的绑定范围感到困惑:)

第一段,从“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 的类型层次结构;)

于 2014-11-07T15:00:29.767 回答