Scalaパス依存
820 ワード
パス依存は内部クラスからjava内のすべての内部クラスが同じタイプ(外部クラス)に属しているが、scala内の内部クラスは外部クラスのインスタンスに依存しなければならない.異なる外部クラスのインスタンス、内部クラスは異なる.外部クラスへの依存をパス依存型(path_dependent_type)と呼ぶ.
class Outer {
private val x = 10
class Inner {
private val y = x + 10 // , private
}
}
object Path_Dependence {
def main(args: Array[String]){
val outer = new Outer //outer inner、inner2 , Scala ,
val inner = new outer.Inner // , java (outer.new Inner())
val inner2: outer.Inner = new outer.Inner
val o1 = new Outer
val o2 = new Outer
val i: o2.Inner = new o1.Inner // ,type mismatch;found o1.Inner, required o2.inner
val i: Outer#Inner = new o1.Inner //o1.Inner Outer#Inner , java, , ,type_projection
}
}