数据类型

来自GSXAB的知识库
数据类型
术语名称 数据类型
英语名称 data type
别名 类型, 型别, type

数据类型(data type),简称类型(type),指一组数据值及其上操作的总称。 通常只对具体编程语言讨论具体的数据类型,指对应语言的编译器解释器应当如何存储与取得对应的数据。具体一门语言中的一个数据类型,通常包括了数据的内存大小、允许取值范围、存取方式以及允许操作等。 数据类型有时仅仅视为一种指定编译器行为所使用的语法标签,但也通常包括其表示(物理内存表示)、取值范围(逻辑取值范围)以及相关行为等。

分类

两个常见的分类方式是根据编程语言中类型的定义方式:

  • 原始数据类型(primitive data type)/原始类型(primitive type),或称内建数据类型(built-in data type)/内建类型(built-in type),指一种编程语言中内置(built-in)的类型。相反的称为自定义类型(user-defined type)。
  • 基本数据类型(basic data type/fundamental data type),指一种编程语言中不通过组合其他类型得到的类型。相反的称为衍生数据类型(derived data type)。

注:由于分类本身没有实用性且因具体编程语言不同,这一分类方式存在多种不同观点。

常见类型

注:这里只是按照是否逻辑上组合了其他类型进行树状列表,不代表任何语言中的实际情况。

  • 基本类型
    • 机器类型(只将其中数据作为一个整体进行复制等不具有结构的操作或其他原封不动的操作,没有进行结构性解释、运算等)
    • 布尔型
    • 数值类型
    • 字符类型(有的语言中不视为单独类型,此时对应基本类型是字符串)
    • 枚举类型(枚举尽管需要一种底层实现,且底层通常是另一种类型,但是枚举逻辑上不依赖底层类型的逻辑结构和取值范围)
    • 空类型(类型作为语法标记使用时的占位符,没有对应数据也没有对应操作)
    • 抽象数据类型/接口类型(只规定对应操作,并且允许所有有指定操作的数据)
  • 衍生类型
    • 按取值集合的笛卡尔积进行衍生
      • 数组
      • 字符串(有的语言中将字符串视为字符的聚合,有的语言中将字符串视为基本类型而没有单独的字符类型,并将字符视为长度为1的字符串)
      • 聚合类型/记录类型
        • 空聚合类型/空记录类型(0 个类型的聚合)
    • 按取值集合的并集不交并进行衍生
      • 联合类型
        • 可选类型(一个类型与一个“空”的联合)
        • 变体类型(任意类型的联合)
        • 空类型(没有取值的类型,相当于 0 个类型的联合)
    • 交集衍生
    • 地址或其他类似标记
    • 函数类型
    • 为常见数据结构设计的类型


模板:数据类型