D 编程/类型
外观
< 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
- 枚举
- 结构体
- 联合
- 类