![]() |
1
8
Scala中的嵌套作用域可以自由地隐藏彼此的符号表。类型不是你唯一能做的事情。例如:
所以要意识到你有迷惑自己的能力,明智地选择不迷惑地使用这种能力。 |
![]() |
2
4
我不是Scala专家,但您的代码的行为完全符合我的预期。 首先,您需要知道方法的类型参数不需要绑定到类。
下面也是一个有效的Scala代码,唯一不同的是这个代码根本不使用类型a。
所以我认为现在很清楚,首先您创建了MyTest[Int]的一个实例,这很好。
然后调用checkString[A,Int],但不提供类型参数A,因为它是泛型函数,编译器必须推断什么类型是A。
在这个时间点上,Scala已经知道x必须是Int并且其类型是固定的,因为您是通过MyTest[Int]提供它的。所以下面的代码将产生编译错误。
现在,编译器查看您提供的参数,发现其
所以现在编译器知道checkString[A,Int]中的类型A必须是一个字符串,如果您手工完成所有这些,您的代码将如下所示。
|
![]() |
3
1
将产生编译错误,因为泛型方法getInstance中声明的类型T与类Foo的参数类型不同。
|
![]() |
4
0
它不仅仅与scala有关。在大多数语言中你都能做到。因为正如你所说的,变量在不同的范围内。 在c中#
这表示self类型。我不确定scala中的这个功能。但你提出这个问题的原因是范围级别。 |
![]() |
Wickoo · Scala变量解析:类与局部变量 4 月前 |
![]() |
Jake · 如何回滚臭鼬事务以进行集成测试?(缺少隐式原点) 6 月前 |
![]() |
Readren · 如何定义标量。标量3中元组的ValueOf? 1 年前 |
![]() |
Leif Andersen · “=>”在scala泛型中是什么意思? 1 年前 |