我已经看到了一些关于基本数据类型,基本数据类型和内置数据类型的定义。但我还不确定,我怎么能说数据类型是基本的或原始的,甚至是原始的基础! 是否有任何好的定义来帮助以这种方式指定数据类型的类型?
维基百科说原始数据类型包括基本数据类型和内置数据类型。 foldoc.org说:“某些类型是原始的 - 内置于语言中,没有可见的内部结构”。
我真的很困惑!
答案 0 :(得分:2)
引自Michael L. Scott的书,编程语言语用学,第7.1.1节(类型的定义),第322页:
至少有三种方式可以考虑类型,我们可以将其称为指称,建设性和基于抽象的点视图。 [...] 从建设性的角度来看,类型是内置类型的一小部分之一(整数,字符,布尔值,实数等;也称为原语或预定义类型),或通过应用类型构造函数(
record
,array
,{创建的复合类型{1}}等)一种或多种更简单的类型。 (术语“构造函数”的使用与C ++和Java的初始化函数无关。[...]
因此,从理论上的POV,那些术语(原始,内置,预定义 - 我将添加 basic < / em>也是或多或少的同义词,与复合类型相比,它们都是可以理解的,这些类型是由它们构建的,可能以递归方式使用某种“类型操作” (一个char 数组,一个指针集合,一个记录列表,每个记录包含一个浮点数和一个字符串等)。
我同意@KeithThompson的观点,即从实际的POV中,每种语言都会使用(某些)这些术语为它们分配非常具体的含义,因此您必须浏览特定的语言规范才能知道在该上下文中的含义。 / p>
答案 1 :(得分:1)
内置数据类型是一种语言版本,不会从库或您编写的代码中添加。通常情况下,int
或string
就是这种情况。
正如Wikipedia所说:“关于非基本的内置类型是否应被视为'原始'的观点不同”,原始数据类型的定义不是真的很清楚。在我个人看来,原始数据类型与基本数据类型相同,i。即一个没有结构或子组件的人。同样int
是一个很好的例子,但是string
有子组件(构建它的不同字符)。另一种非基本类型是file
,因为它有一些结构,如文件名或路径。