Scala 路径依赖类型和依赖类型之间有什么区别?
Scala有路径依赖类型,但据说Scala不支持依赖类型。路径依赖类型和依赖类型之间有什么区别Scala 路径依赖类型和依赖类型之间有什么区别?,scala,dependent-type,path-dependent-type,Scala,Dependent Type,Path Dependent Type,Scala有路径依赖类型,但据说Scala不支持依赖类型。路径依赖类型和依赖类型之间有什么区别 据我所知,路径依赖类型是一种依赖类型。依赖类型是一种依赖于值的类型。路径依赖类型是一种特定类型的依赖类型,其中该类型依赖于路径 我不确定术语“路径依赖类型”是否存在于Scala社区之外。无论如何,问题是,路径是什么?对于Scala,这是在中定义的:基本上,这是一系列对非变量值的选择a.b.c. 路径相关类型是一种具有路径的类型,例如中的A.T class A { type T; def f: T }
据我所知,路径依赖类型是一种依赖类型。依赖类型是一种依赖于值的类型。路径依赖类型是一种特定类型的依赖类型,其中该类型依赖于路径 我不确定术语“路径依赖类型”是否存在于Scala社区之外。无论如何,问题是,路径是什么?对于Scala,这是在中定义的:基本上,这是一系列对非变量值的选择
a.b.c.
路径相关类型是一种具有路径的类型,例如中的A.T
class A { type T; def f: T }
def f(a: A): a.T = a.f
还有其他类型的依赖类型。例如,在Scala中,是一种将基于文本的类型添加到语言中的方法,这样您就可以编写valx:42.type=21+21
为了对使用依赖类型的程序进行类型检查,类型系统(和编译器)需要了解这些值的语义及其操作。Scala编译器知道选择的语义,可以决定两条路径是否相同。对于使用基于文本的类型的示例,需要对编译器进行扩展,以了解整数上的+
操作意味着什么。请参阅Miles Sabin对类似问题的回答(您的问题要好得多,因此我不会将其标记为重复)。