跳转到内容

D 编程/类型

来自维基教科书,开放的书籍,为开放的世界

待完成。


Clipboard

待办事项


D 数据类型

[编辑 | 编辑源代码]

如果你直接查看计算机内存的内容,你只会看到很多字节。这些通常显示为数字,但实际上它们本身没有意义,甚至没有数字的意义。

类型在 D 等计算机语言中用于赋予一个字节或字节序列意义。类型定义了这些字节是数字、文本、日期还是其他东西。

基本类型

[编辑 | 编辑源代码]

空类型

[编辑 | 编辑源代码]
  • void

布尔类型

[编辑 | 编辑源代码]
  • bool

整数类型

[编辑 | 编辑源代码]

提供的类型是

  • byte
  • ubyte
  • short
  • ushort
  • int
  • uint
  • long
  • ulong
  • cent (保留供将来使用)
  • ucent (保留供将来使用)

每种类型在位中的大小定义了它可以容纳多少个不同的值(=状态)。

例如,一个 8 位类型可以存储 256 个不同的状态,而一个 16 位类型可以存储 65536 个状态。

类型的尺寸是

名称 位数 八位字节数 最小 最大
byte 8 1 -128 +127
ubyte 8 1 0 +255
short 16 2 -32,768 +32,767
ushort 16 2 0 +65,535
int 32 4 -2,147,483,648 +2,147,483,647
uint 32 4 0 +4,294,967,295
long 64 8 -9,223,372,036,854,775,808 +9,223,372,036,854,775,807
ulong 64 8 0 +18,446,744,073,709,551,615
cent 128 16 -170,141,183,460,469,231,731,687,303,715,884,105,728 +170,141,183,460,469,231,731,687,303,715,884,105,727

每种类型都存在有符号和无符号变体。无符号变体在前面有一个“u”(例如 *uint*、*ubyte*)。

无符号意味着可能的范围被解释为从 0 开始的非负值,一直到该类型的可能状态的最大值减 1,因为 0 也是一个必须存储的状态。

对于 *ubyte* 类型(8 位 = 256 个状态),这意味着它可以存储从 0 到 255 的值(包括 255)。

有符号类型将其状态的一半解释为正数,另一半解释为负数,因此有符号 *byte* 类型的取值范围为 -128 到 +127。

浮点类型

[编辑 | 编辑源代码]
  • float
  • double
  • real
  • ifloat
  • idouble
  • ireal
  • cfloat
  • cdouble
  • creal

字符类型

[编辑 | 编辑源代码]

一个 *字符* 是一个信息单位,大致对应于一个类似音素的单位或符号,例如自然语言书面形式中的字母表。这个概念还包括控制字符,如回车。

字符通常组合成字符串。

D 语言允许直接处理 Unicode 字符串。

  • char (用于处理 UTF8 代码单元)
  • wchar (用于处理 UTF16 代码单元)
  • dchar (用于处理 UTF32 代码单元)

派生类型

[编辑 | 编辑源代码]
  • 指针
  • 数组
  • 关联数组
  • 函数
  • 委托

用户定义类型

[编辑 | 编辑源代码]
  • 别名
  • typedef
  • 枚举
  • 结构体
  • 联合
华夏公益教科书