为什么Scala具有路径依赖类型?

我一直在研究路径依赖类型。我能找到的最好的描述是:   如果L是类型标签,那么x.L和y.L是相同的类型iff x和y可以显示为引用相同的对象。 这有时不是人们所期望的子类型行为。我希望如果上面例子中的L确实相同,那么这足以使x.L和y.L变得不同。 Scala是这样设计的,有什么特别的原因吗?     
已邀请:
可扩展组件抽象论文对路径依赖类型有很好的解释,也是第3节中的一个很好的例子:“案例研究:主题/观察者”。     
本文很好地解释了它。基本上,它们习惯于支持基于抽象数据类型的编程和模块化。     
将L视为泛型类的类型参数。 Scala夸耀其类型成员,但底层JVM仍然具有相同的局限性。     

要回复问题请先登录注册