我现在正在深入阅读 Scala。这是本书的摘录:
所有依赖于路径的类型都是类型投影。路径相关类型被编译器
foo.Bar
重写为...foo.type#Bar
在 Scala 中,所有类型引用都可以编写为针对命名实体的项目。scala.String 类型是
scala.type#String
名称scala
引用包scala
的简写,类型由scala 包上String
的类定义。String
显然,没有scala.String
课程,但我未能用Null
.
scala> type N = scala.type#Null
<console>:7: error: type mismatch;
found : type
required: AnyRef
type N = scala.type#Null
所以,我的问题如下。路径相关类型是类型投影吗?它只是内部编译器表示还是可以用scala代码表示?