Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是Scala语言规范中关于参数化类型的输入错误吗?_Scala_Language Specifications - Fatal编程技术网

这是Scala语言规范中关于参数化类型的输入错误吗?

这是Scala语言规范中关于参数化类型的输入错误吗?,scala,language-specifications,Scala,Language Specifications,如下图所示,U_i不应该是T_i吗 同样的打字错误(IMHO)也同样存在 如果不是打字错误,那么有人能告诉我T_i的含义在哪里 这不是一个打字错误,只是变量的选择非常糟糕,并且混淆了它们的绑定范围:) 在第一段中,从“A参数化”到“A_n.”,U_i变量的绑定是指类型参数,而T绑定到实际的参数类型。例如,假设你有 val x : Map[Int, String] T是Map,U_1是Int,U_2是String 另一方面,第二段与前一段完全脱节。这里类型参数绑定到变量T_1。。。n,参数化类

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

同样的打字错误(IMHO)也同样存在


如果不是打字错误,那么有人能告诉我T_i的含义在哪里

这不是一个打字错误,只是变量的选择非常糟糕,并且混淆了它们的绑定范围:)

在第一段中,从“A参数化”到“A_n.”,U_i变量的绑定是指类型参数,而T绑定到实际的参数类型。例如,假设你有

val x : Map[Int, String]
T是Map,U_1是Int,U_2是String

另一方面,第二段与前一段完全脱节。这里类型参数绑定到变量T_1。。。n,参数化类型是而不是绑定到任何东西,并且您有一个L\u 1的绑定。。。L_n到类型参数的下界和U_1的绑定。。。返回参数类型的上限

在本例中,如果您得到(这不是编译,只是举个例子):

val x:Map[T1:Int]
然后将T1,T2作为实际的类型参数,U1=AnyRef,L2=Int

希望现在更清楚:)(但是的,变量选择不当)


要了解您是否理解,请尝试猜测第二个示例中的U2和L1是什么。提示:查看Scala的类型层次结构;)

谢谢你的支持!这真是一个艰难的时刻!U_i和a_i(在第一段中)之间有什么区别?所以在你的例子中,如果in
val x:Map[Int,String]
U_1是
Int
那么什么是a_1?我想我理解你的解释,我只是不明白在第一段中既有U_I又有a_I的意义是什么?a_i是形式类型参数,而U_i是实际类型参数吗?如果是这样的话,那么我会争辩说,变量名的选择太让人困惑了,在Scala语言规范中,U_I应该改为T_I。我怎样才能引起语言规范作者对这种不一致的符号选择的注意?你对U_I和a_1的看法是正确的。我不知道如何引起他们的注意,也许在这里:?你可以向文档投稿这是刚刚修复的,看。感谢@jhegedus发现并修复此问题:)
val x : Map[T1 <: AnyRef, T2 >: Int]