Mar*_*lic 3 types scala terminology
trait C {
type T
val x: T
}
Run Code Online (Sandbox Code Playgroud)
扩展到
trait C {
type T
val x: C.this.type#T
}
Run Code Online (Sandbox Code Playgroud)
我熟悉.type单例类型的符号,但我不确定它如何转换为C.this.type#T. 例如。什么是this.type试图传达的部分而不只是说C#T?
在 Scala 规范中,主要概念是类型投影而不是依赖于路径的类型。
依赖于路径的类型是根据类型投影(和单例类型)定义的。
例如,val c: C类型c.T是c.type#T根据定义。
并c.x具有类型c.Taka c.type#T。
在 trait 内部,C这种类型(当实例c不固定时)可以称为Taka this.Taka this.type#Taka C.this.Taka C.this.type#T。
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |