Scala中的类型通过两种机制引用: 一种称为“路径依赖型”(。),另一种称为“类型投影”(#)。
两者之间有什么区别?
答案 0 :(得分:0)
让我试着用例子来证明它。
scala> class A {
| type B = Int
| }
defined class A
scala> implicitly[Int =:= A#B]
res1: Int =:= Int = <function1>
scala> val a = new A
a: A = A@20864cd1
scala> implicitly[Int =:= a.B]
res2: Int =:= a.B = <function1>
scala> implicitly[Int =:= a#B]
<console>:12: error: not found: type a
implicitly[Int =:= a#B]
^
scala> implicitly[Int =:= A.B]
<console>:12: error: not found: value A
implicitly[Int =:= A.B]
^