类是代数数据类型吗?

我正在阅读有关代数数据类型的信息。所有文章都将它们写为关于可以包含其他类型的容器的文章。在我看来,这堂课也差不多。我说的对吗?

b1004940 回答:类是代数数据类型吗?

我假设当您说“类”时,它是指面向对象编程范例中的类。

答案是否定的。

Class是用于创建对象的模板。对象具有行为和状态。 代数数据类型更像联合和产品类型。他们确实维持状态 但他们没有任何行为。如果将ADT与对象进行比较,则没有方法。

但是,您可以使用对象和使用ADT的对象模拟ADT(假设您已支持存在数据类型)

,

“支持代数数据类型”是指能够将任何给定类型AB合并为元组(A,B)(产品类型)和不相交的并集A | B(求和类型) )。

几乎每种现代语言都以某种方式支持产品类型。您可以将类视为产品类型。

但是总和类型的概念在某种程度上反对面向对象的事物建模方法(类来自何处)。

本文链接:https://www.f2er.com/3144582.html

大家都在问